我应该写吗
class MyClass:
def __init__(self):
self.field = 0
或
class MyClass:
def __init__(self):
field = 0
这些说法有什么区别吗?
请您参考如下方法:
是的,您必须使用self 变量来设置Python 对象/实例的属性。
在第二种情况下,您只是在 __init__ 中创建一个局部变量,而不是定义一个属性。
class MyClass:
def __init__(self):
field = 0
print MyClass().field # an error! it's not defined!
您可能会误以为您可以在 class block 中使用原始赋值来设置类属性:
class MyClass:
a = 2
print MyClass.a # 2
class block 中的行为是不寻常的,并且您不会在方法内部获得类似的行为。
