假设我首先拥有一个具有可变数量的位置和关键字参数的函数,如下所示:
def print_stuff(*args, **kwargs):
print("Args: {args}".format(args=args))
print("Kwargs: {kwargs}".format(kwargs=kwargs))
我想添加一个关键字参数maybe
,我尝试这样做:
def print_stuff(*args, **kwargs, maybe=False):
print("Args: {args}".format(args=args))
print("Kwargs: {kwargs}".format(kwargs=kwargs))
if maybe:
print("Maybe!")
但是,我得到SyntaxError: invalid syntax
。我考虑将其重写为
def print_stuff(*args, **kwargs):
print("Args: {args}".format(args=args))
print("Kwargs: {kwargs}".format(kwargs=kwargs))
maybe = kwargs.pop('maybe', False)
if maybe:
print("Maybe!")
但我发现这不太美观,因为参数maybe
不再在def
行,所以要查看所有可能的参数,你必须阅读整个函数体。
还有更优雅的方法吗? (我看了一下https://docs.python.org/3/reference/expressions.html#calls,但我没有立即知道。