我正在嘗試在 python 中創建一個新物件串列(如在單獨的記憶體位置,而不是參考)
class example:
_name = ""
_words = []
def __init__(self,name):
_name = name
def add_words(self,new_words):
for i in new_words:
self._words.append(i)
examples = [example("example_1"),example("example_2"),example("example_3")]
examples[0].add_words(["test1","test2"])
print(examples[2]._words)
print(examples[2]._words)["test1","test2"]
我期望的輸出,[]因為我只添加了單詞examples[0]
uj5u.com熱心網友回復:
_words = []在類的頂部創建_words一個類變數,而不是實體變數。所有類實體都_words與您現在擁有它的方式共享。
改為使其成為實體變數:
class example:
def __init__(self,name):
self._words = []
. . .
您可能_name也想修復。
uj5u.com熱心網友回復:
希望這可以幫助:
class example:
def __init__(self, name):
self._words = []
self._name = name
def add_words(self, new_words):
for i in new_words:
self._words.append(i)
examples = [example("example_1"), example("example_2"), example("example_3")]
examples[0].add_words(["test1", "test2"])
print(examples[2]._words)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/529255.html
標籤:Python哎呀记忆参考
上一篇:一內一排序
下一篇:如何從協程回傳值/等待協程完成
