2015-04-18 90 views
0

我的代碼:呼叫與name參數函數 - 參數不正確推

class OfferHandler: 
    def get(provider, **kwargs): 
     getattr(OfferHandler, 'get_' + provider)(**kwargs) 

    def get_ADM(settings, ip, uniquekey): 
     return settings 

x = OfferHandler 
settings = x.get('ADM', '{json settings}', '127.0.0.1', '123') 
pprint(settings) # prints Null instead of {json settings} 

爲什麼參數不正確推?

+0

請修復您的縮進。 –

+0

爲什麼'OfferHandler'是這裏的一堂課?你並沒有把它當作一個班級來使用。 –

回答

2

您沒有使用關鍵字參數,只有位置參數。

如果使用關鍵字參數,他們實際上可以**kwargs被捕獲和傳遞:你實際上並沒有使用OfferHandler作爲一類

settings = x.get('ADM', settings='{json settings}', ip='127.0.0.1', uniquekey='123') 

注意;您似乎將其用作名稱空間。使用Python模塊來創建名稱空間。 class應該只能用於實際的類,所以您需要創建實例的對象。

+0

謝謝先生:) – Royalty