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