Python教程

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

参考链接

这篇关于python函数参数中单独的*的含义的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!