__init__初始化函数的简单写法
- 类的初始化方法一般是这么定义的
- self.变量名 = 参数, 需要写很多遍,显得不优雅以及繁琐
# 定义一个购物清单类,传入物品名字,价格,想买的意愿
class Buy:
def __init__(self, name, price, want):
self.name = name
self.price = price
self.want = want
- 使用 dataclass 可以不用编写self.变量名 = 参数
from dataclasses import dataclass
@dataclass
class Buy:
name: str
price: int
want: str
b = Buy("苹果", 4, "购买意愿很大")
print(b.name)
dataclass的方法
- def dataclass(cls=None, /, *, init=True, repr=True, eq=True, order=False, unsafe_hash=False, frozen=False, match_args=True, kw_only=False, slots=False)
- 可以通过使用 True 和 False 来决定是否使用方法
from dataclasses import dataclass
# 会自动生成生成init
@dataclass(init=True, repr=False)
class Buy:
name: str
price: int
want: str
b = Buy("苹果", 4, "购买意愿很大")
print(b.name)
# 显示属性的方法
print(b)
# 可以通过 repr=False或者True查看输出的不同
# False输出: <__main__.Buy object at 0x0000029B16727D00>
# True输出: Buy(name='苹果', price=4, want='购买意愿很大')
感谢浏览,如果您有什么问题和建议,请留言,期待共同的进步~