2015-04-18 51 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