Clunky arg检查Python

时间:2013-07-23 22:00:35

标签: python kwargs

我有一个功能:

def check_user(self, **args):
    allowed = ['name', 'screen_name', 'url', 'description', 'location']
    arg_check = [val for val in args if val not in allowed]
    if arg_check:
        raise ValueError('Invalid args: ' + ' '.join(arg_check))

它有效,但感觉非常不敏感。有没有更好的方法来检查这个?我希望不必写一个很大的if / else语句。

这样我就可以轻松地遍历循环中的args。

1 个答案:

答案 0 :(得分:10)

我认为更加pythonic版本会在函数定义中显式声明允许的参数。只需将None替换为默认值即可。

def check_user(self, name=None, screen_name=None, url=None,
               description=None, location=None):
    # Do something here
    # ...