当数据类中存在一个字段,其类型可以是任何类型时,如何省略注释?
@dataclass
class Favs:
fav_number: int = 80085
fav_duck = object()
fav_word: str = 'potato'
似乎以上代码实际上并未为创建字段fav_duck
。它只是使它成为普通的旧类属性。
>>> Favs()
Favs(fav_number=80085, fav_word='potato')
>>> print(*Favs.__dataclass_fields__)
fav_number fav_word
>>> Favs.fav_duck
<object at 0x7fffea519850>
数据类装饰器通过在中查找名称来检查类以查找字段__annotations__
。注解的存在使该字段成为现实,因此,您确实需要注解。
但是,您可以使用通用的一种:
@dataclass
class Favs:
fav_number: int = 80085
fav_duck: 'typing.Any' = object()
fav_word: str = 'potato'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句