python语法错误* args和可选的arg

Sco*_*ott 2 python python-2.7

为什么这是语法错误?做这个事情的合适方法是什么?

>>> def f(*args, option=None):
  File "<stdin>", line 1
    def f(*args, option=None):
                      ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

use*_*ica 5

Python 2没有仅关键字参数支持。如果您确实希望Python 2函数具有只能通过关键字传递的参数,则需要自己接受**kwargs并验证关键字参数:

def my_max(*args, **kwargs):
    '''Emulate the built-in max, including the keyword-only key argument.'''
    key = kwargs.pop('key', None)
    if kwargs:
        raise TypeError('my_max() got an unexpected keyword argument {!r}'.format(next(iter(kwargs))))
    if key is None:
        # max doesn't support key=None
        return max(*args)
    else:
        return max(*args, key=key)
Run Code Online (Sandbox Code Playgroud)