问题描述
我们经常能看到这样的Python
看到如下的函数
def demo(*, foo=2, bar):
print(foo, bar)
那么请问函数中的*
表示什么意思呢?
解释:
如果在函数首位添加星号(*
)那么,后面参数不管是带默认值还是不带默认值不用考虑位置,如果你写成这样
def demo(foo=2, bar):
print(foo, bar)
这是不允许的,带默认值参数应该还走最后这是Python约定的规则。
所以,加上*
之后,默认参数与非默认参数位置不强制 。