我有一個問題,是否迭代對象的實例會創建多個對象(我假設沒有)。我做了這個測試來檢查:迭代一個實例;爲什麼控制檯顯示兩個不同的對象?
class Foo:
def __init__(self, msg):
self.msg = msg
print(self.msg, self)
for i in range(7):
a = Foo(i)
但是,控制檯顯示了這個:
0 <__main__.Foo object at 0x010BA470>
1 <__main__.Foo object at 0x010BA4F0>
2 <__main__.Foo object at 0x010BA470>
3 <__main__.Foo object at 0x010BA4F0>
4 <__main__.Foo object at 0x010BA470>
5 <__main__.Foo object at 0x010BA4F0>
6 <__main__.Foo object at 0x010BA470>
假設我只實例化一個對象,爲什麼控制檯多次報告在內存中兩個不同對象(0x010BA470和0x010BA4F0)?
嘗試'[Foo(i)for i in range(7)]'看看當你保留對你創建的所有實例的引用時會發生什麼。 – jonrsharpe