函数中形参列表出现一个单独的*
,如下所示:
test_func2(aa, *, bb, cc='hello')
: 这表示*
号后面的形参只能以关键字形式进行传参,不接受位置传参
就只能接受 bb='xxx', cc='xxx', 不能接受其他的命名关键字参数了
def test_func1(aa, bb, cc='hello'): print('11111 ', aa) print('22222 ', bb) print('33333 ', cc) def test_func2(aa, *, bb, cc='hello'): print('11111 ', aa) print('22222 ', bb) print('33333 ', cc) test_func1('haha', 'hehe', 'heihei') 11111 haha 22222 hehe 33333 heihei test_func2('haha', 'hehe', 'heihei') Traceback (most recent call last): File "<ipython-input-5-ec0696934d76>", line 1, in <module> test_func2('haha', 'hehe', 'heihei') TypeError: test_func2() takes 1 positional argument but 3 were given test_func2('haha', bb='hehe') 11111 haha 22222 hehe 33333 hello test_func2('haha', bb='hehe', cc='heihei') 11111 haha 22222 hehe 33333 heihei
参考链接