1
我有一些將永遠存儲在內存中的對象,將有成千上萬的實例,所以有效地使用內存很重要。什麼是更有效率?函數定義中的類定義或字典中的字典?
這個對象會使用一些字典,如:
{
'text':doSomething,
'string':doAnotherThing,
'int':doSomethingCrazy
}
我當然可以把它OUT之類的,在模塊級,所以它肯定會被存儲在內存中只有一次,但我更喜歡把東西放在一起,所以如果僅在該類中使用它,如果它保存在類中,看起來會更好。
問題是,如果我把字典放到類定義中,它會只存儲在內存中一次嗎?
class MyClass(object):
thatDict={}
或者將它存儲在內存中只有一次,如果我把它放在函數定義中?
class MyClass(object):
def someFunc():
thatDict={}
那麼,如果我在一個實例編輯字典發生,它會創建它的副本,而沒有進行的編輯使用基本一? – Tigra
正如我所說,只有一個副本。如果您編輯它,另一個副本不會出現。 –
對我來說似乎很陌生,如果你有obj1和obj2。並且在obj1,obj2中編輯self.thatdict不應該看到這種變化。所以我想,當你通過MyClass.thatdict進行編輯時,確實只有一個副本。但是,如果你通過self.thatdict編輯另一個副本創建。因此,這是基於假設,在第一次編輯之前不創建對象創建副本... – Tigra