6
我試圖找出一種方法來循環瀏覽json配置文件,並使用鍵名稱作爲參數名稱來使用** kwargs的方法。我創建了一個json配置文件,並使用鍵名作爲方法。我只是將「set_」附加到鍵名稱以調用正確的方法。我將json轉換爲字典以循環任何默認值。我想通過一個字符串變量將參數名稱傳遞給** kwargs。我試圖通過一本字典,但它似乎並不喜歡那樣。使用字符串變量** kwargs作爲命名參數
user_defaults = config['default_users'][user]
for option_name, option_value in user_defaults.iteritems():
method = "set_" + option_name
callable_method = getattr(self, method)
callable_method(user = user, option_name = user_defaults[option_name])
調用上面的callable_method傳遞「option_name」作爲kwarg的實際名稱。我想傳遞它,以便當「shell」= option_name時,它將作爲參數名稱的字符串名稱傳遞。下面是一個例子。通過這種方式,我可以通過配置中的任何按鍵進行循環,而不必擔心我爲了完成某些任務而寫的任何方法。
def set_shell(self, **kwargs):
user = kwargs['user']
shell = kwargs['shell']
## Do things now with stuff
任何幫助表示讚賞我是新來的python,仍然在學習如何做pythonic的方式。
多數民衆贊成在這真棒,這正是我一直在尋找。感謝您及時的回覆。 – lumberjacked 2013-04-11 13:30:14