我不明白我的代碼的輸出如下所示。我希望看到:對象之間的Python變量分隔
1
1
而是看到:
1
2
這是使用Python 2.7.3有問題的代碼:
#!/usr/bin/python
class Test:
__tBin = {'80':0, '70':0, '60':0, '50':0,'40':0,
'30':0, '20':0, '10':0, '0':0,
'-10':0, '-20':0, '-30':0, '-40':0}
def __init__(self):
self.__tests = {'i2c_transfer':self.__tBin}
def foo(self):
self.__tests['i2c_transfer']['80'] += 1
print self.__tests['i2c_transfer']['80']
if __name__ == "__main__":
testList = list()
for i in range(1, 3):
testList.append(Test())
for i in testList:
i.foo()
感謝
你爲什麼期待? '__tBin'是一個* class *屬性,第一次調用'foo'會修改它,這就是爲什麼你第二次看到'2'。在你的'__init__'中,它看起來像你想對它進行拷貝*,但你必須明確地做到:''ic2_transfer':self .__ tBin.copy()' – Bakuriu
啊,謝謝。就像我在下面說的,這是我第一次使用Python,我想我沒有看足夠的文檔,這就是爲什麼我會期待我的想法。 +1 – psidhu