编程语言
首页 > 编程语言> > python函数参数中单独的*的含义

python函数参数中单独的*的含义

作者:互联网

函数中形参列表出现一个单独的*,如下所示:

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

参考链接

标签:func2,bb,python,含义,haha,函数参数,test,hehe,cc
来源: https://www.cnblogs.com/rainboy1227/p/16101856.html