考虑以下类别:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
我的同事倾向于这样定义:
class Person:
name = None
age = None
def __init__(self, name, age):
self.name = name
self.age = age
这样做的主要原因是他们选择的编辑器显示了自动补全的属性。
就我个人而言,我不喜欢后者,因为一个类将那些属性设置为毫无意义None
。
哪种方法更好,原因何在?
__init__
已经设置的属性中提供自动补全等功能。此外,using None
可以防止IDE推断出更好的属性类型,因此最好使用明智的默认值(当可能)。
typing
模块,如果您喜欢这种话,便可以向IDE和linter提供提示...
self
。即使在实例中未显示self.name
或未self.age
分配__init__
它们self
,它们也只会在类中显示Person
。