我有以下两个代码示例
示例 1:
class MyClass(object):
def __init__(self, key, value):
self._dict = self._dict.update({key:value})
m = MyClass('ten',10)
print m._dict
输出:
AttributeError: 'MyClass' object has no attribute '_dict'
示例 2:
class MyClass(object):
_dict = {}
def __init__(self, key, value):
self._dict = self._dict.update({key:value})
m = MyClass('ten',10)
print m._dict
输出:
None
我对上述行为感到非常惊讶
为什么 example2 通过添加 _dict = {} 行成功编译,并且该行存在于类范围内。还有为什么要None
输出?我相信类范围变量与实例变量没有关系(特殊self
)
有什么解释吗?