因此Python不是我的強項,我遇到了我認爲是一個奇怪的問題。我已經將問題簡化爲幾行代碼,簡化它以使問題更容易。我有對象的列表,這個對象:Python:添加到列表中的一個對象的字典更改列表中的每個其他對象的所有字典
class FinalRecord():
ruid = 0
drugs = {}
我在shell創建他們是這樣的:當我想改變藥物快譯通一個對象
finalRecords = []
fr = FinalRecord()
fr.ruid = 7
finalRecords.append(fr)
fr2 = FinalRecord()
fr2.ruid = 10
finalRecords.append(fr2)
,它改變它對於另一隻也
finalRecords[0].drugs["Avonex"] = "Found"
我打印出來的:
finalRecords[1].drugs
它表明:
{'Avonex':'Found'}
當我期待它實際上是空的。我知道我並不完全理解Python如何處理這些對象,任何人都可以幫我解決這個問題嗎?
啊,我明白,我沒有並不完全理解Python在Python中的工作方式 –
在類範圍聲明的基本方法(def關鍵字)和變量(從class關鍵字中提取一級)定義了dict中的元素離奇的,那本字典是你的班級。一些元素是函數(def),其他元素是類字段。一旦你獲得了Python的動態特性,許多事情就會一次變得有意義。 –
@SpencerSutton:你應該考慮接受這個答案,如果它真的幫助你解決了你的問題。 – ray