只是想知道是否可以在同一个函数中将两个可选参数都用作多个参数。我环顾四周,感觉好像词汇量错了什么的。例子:

def pprint(x, sub = False, *Headers):
  pass

我可以调用它仍然使用多个头,而不必总是为sub放入TrueFalse吗?我觉得这是个否定,因为Headers不知道它从哪里开始。我想明确声明sub = True否则它默认为False

最佳答案

在Python3中,使用:

def pprint(x, *headers, sub=False):
    pass

将关键字参数放在位置之后。此语法在Python 2中不起作用。
演示:
>>> def pprint(x, *headers, sub=False):
...     print(x, headers, sub)
...
>>> pprint('foo', 'bar', 'baz', sub=True)
foo ('bar', 'baz') True
>>> pprint('foo', 'bar', 'baz')
foo ('bar', 'baz') False

调用此处定义的sub函数时,必须使用关键字参数为pprint()指定其他值。

关于python - 同时使用可选参数和多个参数的可行性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17729516/

10-14 19:03