我有一個迭代器(userEnvironments
),其中包含許多用戶環境對象,我想創建一個包含environment.name
作爲密鑰的字典和一個新的EnvironmentStore
對象,該對象將使用environment
。從一大組對象中創建對象的最優化方法
for environment in userEnvironments:
set_cache(user,environment)
def set_cache(user, environment):
_environments_cache[environment.name] = EnvironmentStore(user, environment)
記憶效率在這裏並不重要,但創造了所有這些對象將需要大約4秒。
所以問題是,什麼會是一個很好的方法在python中可以創建對象只有按需(如,在另一個方法要調用類時創建對象)類似於一個生成器?
什麼是在這裏花時間創建'EnvironmentStore'或迭代'userEnvironments'?你不能通過生成器'生成'鍵查找,但是如果你只存儲了原始的'environment'對象,你可以*推遲創建'EnvironmentStore'。 –
這太含糊。 –
@ Martijn的建議也是我想到的;創建一個自定義詞典(例如'MutableMapping'子類),該詞典在設置時存儲'environment',但僅在get時創建'EnvironmentStore'(您可以緩存後者,因此只會構建一次)。 – jonrsharpe