0
尋找一個更優雅(因此)更健壯的方式來做到這一點。目前我有一個在創建時定義了一些默認實例變量的類。然後我讀入一個JSON文件,允許用戶覆蓋其中的一些默認值。 所有這些代碼都在init類的方法中。從JSON文件設置python類實例默認變量
# Instance variables defaults
self._a = 'A - original'
self._b = 'B - original'
self._c = 'C - original'
# line below gives example of dict that gets returned from the JSON read
JSON_dict = {'a': "A-overide", 'c': "C-overide"}
# Inelegent code:
if "a" in JSON_dict:
self._a = JSON_dict['a']
if "b" in JSON_dict:
self._b = JSON_dict['b']
if "c" in JSON_dict:
self._c = JSON_dict['c']
該結構不能很好地擴展。關於如何以更加Python的方式獲得理想結果的任何建議?
並非所有的變量都需要出現在JSON字典中,但是如果它們是它們,它們應該覆蓋卡編碼的字典。
答案有效......澄清一下:爲什麼使用(key,)。知道它評估爲元組,但作爲我可以看到它仍然有效,如果只做:setattr(self,'_%s'%key,val)我錯過了什麼嗎? – Joop
習慣的力量。既然你確定'key'永遠不可能是一個元組,所以單獨使用'key'是安全的。 –