|
|
发表于 2018-4-23 22:13:28
|
显示全部楼层
self成员变量要在__init__方法中初始化,该方法在对象创建时调用,如果写在其它方法中对象创建后可能还没有被加载。
可以用dir()函数进行验证:
>>> class Demo:
def __init__(self, value):
self.value = value
def a():
return self.var
def b(var):
self.var = var
>>> d = Demo(1)
>>> dir(d)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'a', 'b', 'value']
>>>
可以看到,d对象是没有var属性的 |
|