我有一段代碼,我想將三十或四十個不斷變化的鍵/值對轉換爲一個類下的變量。例如:從字典鍵/值對動態設置self.x
for i in dict:
self.i = dict[i]
但是,當然這隻會重置self.i每次。我試過eval,但是你不能用它設置變量,因爲它報告'x = 1'是無效的語法。我試過搜索,但我甚至不知道要搜索什麼...
謝謝!
我有一段代碼,我想將三十或四十個不斷變化的鍵/值對轉換爲一個類下的變量。例如:從字典鍵/值對動態設置self.x
for i in dict:
self.i = dict[i]
但是,當然這隻會重置self.i每次。我試過eval,但是你不能用它設置變量,因爲它報告'x = 1'是無效的語法。我試過搜索,但我甚至不知道要搜索什麼...
謝謝!
要更新一個類的實例,你可以只使用
vars(self).update(my_dict)
我懷疑雖然這是你的問題的最佳解決方案。你能提供更多的細節,爲什麼你認爲你需要這個?
這是一種方法。 Sven Marnach是正確的 - 你應該多說一些你爲什麼要這樣做。
>>> class Foo(object):
... def __init__(self, d):
... for k in d:
... setattr(self, k, d[k])
...
>>> f = Foo({'a':'b', 'c':'d'})
>>> f.a
'b'
>>> f.c
'd'
+1對於工作答案伴隨着建議來思考真正的設計要求:-) –
相當,我在想什麼,但該礦表述:'自.__ dict__。更新(my_dict)' –
另一個+1工作答案伴隨着建議尋找更好的解決方案的基本問題。 –