类型提示是Python的可选功能。这也意味着,使用@dataclass
不需要您定义类型。
在注释中,您可以写很多东西。如果您不想检查它们,那么它们将不会被检查。以下示例有效:
@dataclass
class ColoredObject:
color : ""
name : ""
@dataclass
class ColoredObject:
color : ...
name : ...
@dataclass
class ColoredObject:
color : True
name : True
@dataclass
class ColoredObject:
color : object
name : object
@dataclass
class ColoredObject:
color : None
name : None
我在这里列出了很多选项,以便您可以决定是否喜欢其中的某些选项。如何使用代码注释是您的决定。
对于那些习惯于比Python更静态类型语言的人来说,这可能是一种尴尬的风格。看起来像是滥用空字符串或椭圆对象来实现此目的。而且确实如此。但请记住,在编程中,代码可读性也很重要。有趣的是,大多数阅读您代码的人甚至不知道存在椭圆对象,也会直观地理解您写下的...
。
当然,如果您不想让那些喜欢类型提示的人感到困惑,或者您想使用期望正确类型提示的工具,您必须就此达成一致。
我没有列出使用typing.Any
的解决方案。当然,那也是一个好的解决方案。但是,类型是Python的可选功能。这也意味着知道有typing.Any
这样的东西是可选的知识。
dataclasses
替代方案:https://www.attrs.org - BlackJack