【发布时间】:2019-02-03 10:26:19
【问题描述】:
我想在我的班级中传递默认参数, 但不知何故我遇到了问题:
from dataclasses import dataclass, field
from typing import List
@dataclass
class Pizza():
ingredients: List = field(default_factory=['dow', 'tomatoes'])
meat: str = field(default='chicken')
def __repr__(self):
return 'preparing_following_pizza {} {}'.format(self.ingredients, self.meat)
如果我现在尝试实例化 Pizza,我会收到以下错误:
>>> my_order = Pizza()
Traceback (most recent call last):
File "pizza.py", line 13, in <module>
Pizza()
File "<string>", line 2, in __init__
TypeError: 'list' object is not callable
我做错了什么?
【问题讨论】:
-
我认为问题可能是因为您还没有创建类的实例
-
即使创建了类实例,它也不起作用..
-
无复制。它与实例完美配合。请发布minimal reproducible example,以便我们查看您做错了什么。
-
@Aran-Fey 您是否尝试编写代码?正如我所说,它不适用于实例,请参阅我的编辑
-
我不想使用 init,@dataclass 装饰器的全部意义在于你可以跳过 init
标签: python python-3.x python-dataclasses