- 論壇徽章:
- 26
|
本帖最后由 substr函數(shù) 于 2015-11-19 13:50 編輯
我個(gè)人的看法。[ ]
class A:
cls_i = 0
cls_j = {'a': 'b'}
def __init__(self):
self.instance_i = 0
self.instance_j = {}
a = A()
a.cls_i = 1
a.cls_j = {'a': 'a'} # 實(shí)例屬性設(shè)置
# 這時(shí)候 類對(duì)象 A 和 實(shí)例對(duì)象 a 各自有一個(gè)屬性 cls_i, cls_j。
print(a.__dict__)
print(A.__dict__)
# {'instance_j': {}, 'cls_i': 1, 'cls_j': {'a': 'a'}, 'instance_i': 0}
# {'__init__': <function __init__ at 0x7f635ba9a6e0>, '__module__': '__main__', 'cls_i': 0, 'cls_j': {'a': 'b'}, '__doc__': None}
b = A()
b.cls_j['a'] = 'xyz' # 類對(duì)象屬性設(shè)置
# b.cls_j['a'] 屬性獲取 實(shí)質(zhì)上是指 A.cls_j['a']
# 即,這時(shí)候,獲取到的是A的屬性 cls_j['a']
# 因此會(huì)設(shè)置 變化了A的屬性
#
print(b.__dict__)
print(A.__dict__)
# {'instance_j': {}, 'instance_i': 0} # b實(shí)例: 沒屬性 cls_j
# {'__init__': <function __init__ at 0x7f9f9e9196e0>, '__module__': '__main__', 'cls_i': 0, 'cls_j': {'a': 'xyz'}, '__doc__': None}
|
|