0
爲什麼在私有類變量中的這種結構會將其數據附加到先前的實例?Python 3 - 追加到私有EMPTY列表
class garden:
__flower = []
def __init__(self, flower):
self.__flower.append(flower)
def __str__(self):
return str(self.__flower)
g1 = garden([1,2,3,4])
print(g1)
g2 = garden([5,6,7,8])
print(g1)
輸出:
[[1, 2, 3, 4]]
[[1, 2, 3, 4], [5, 6, 7, 8]]
比較的 「字符串行爲」 看起來真的不同勢,我 - 爲什麼這個:
class garden:
__flower = ""
def __init__(self, flower):
self.__flower = flower
def __str__(self):
return str(self.__flower)
g1 = garden("dsf")
print(g1)
g2 = garden("asdf")
print(g2)
print(g1)enter code here
輸出:
dsf
asdf
dsf
感謝回答
不'class_flower_attribute'將要面對的同樣問題[如這裏所描述](http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#default-parameter - 值) –
Jop,那是我搜索:-) Thx – binzram
@DaanTimmer不,它是一個類屬性不是一個可變的默認參數值。後者通常是意外事故,前者通常是故意的! – jonrsharpe