知行编程网知行编程网  2022-11-23 17:00 知行编程网 隐藏边栏  14 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python如何传入不定长参数的相关知识,包括python默认参数,以及python函数可以没有参数这些编程知识,希望对大家有参考作用。

python如何传入不定长参数

刚接触Python的时候,传递给函数的参数最多的就是对应的参数,正所谓一个萝卜一个坑

def test_arg(a,b):
    print(a,b)

渐渐地,我们发现在定义一个函数的时候,我们并不知道这个函数被调用的时候会传递多少个参数。这就是今天题目提出的问题,即给函数传递不定数量的参数

def test1_var_args(*arg2):
    print("test1_var_args")
    print(arg2)

def test2_var_arg(**arg):
    print("test2_var_args")
    print(arg)

def test3_var_args(arg1,*arg2):
    print("test3_var_args")
    print(arg1)
    print(arg2)

def test4_var_args(arg1,**arg2):
    print("test4_var_args")
    print(arg1)
    print(arg2)

def test5_var_args(arg1,*arg2,**arg3):
    print("test5_var_args")
    print(arg1)
    print(arg2)
    print(arg3)

def test6_var_args(arg1, arg2="moren",*arg3, **arg4):
    print("test6_var_args")
    print(arg1)
    print(arg2)
    print(arg3)
    print(arg4)

if __name__=="__main__":
    test_arg(1,2)
    test1_var_args()
    test1_var_args(1,2,3,4)

    test2_var_arg()
    test2_var_arg(a="1",b='2')

    test3_var_args(1)
    test3_var_args(1,2,3,4)

    test4_var_args(1,a="2",b="3")

    test5_var_args(1,2,3,4,a="5",b="6")

    test6_var_args(1,a="2",b="3" ,c="4")
    test6_var_args(1, arg2="3", c="4")

#结果
test1_var_args
()
test1_var_args
(1, 2, 3, 4)

test2_var_args
{}
test2_var_args
{'a': '1', 'b': '2'}

test3_var_args
1
()
test3_var_args
1
(2, 3, 4)

test4_var_args
1
{'a': '2', 'b': '3'}

test5_var_args
1
(2, 3, 4)
{'a': '5', 'b': '6'}

test6_var_args
1
moren
()
{'a': '2', 'b': '3', 'c': '4'}
test6_var_args
1
3
()
{'c': '4'}

上述例子可知:

前面带*表示不定数量的元组参数,默认为()

前面加**表示字典参数个数可变,默认为{}

混合多个参数时,需要注意顺序,一般是位置在前,然后是关键字,然后是可变数量的元组参数,然后是可变数量的字典参数

特别注意的是,当前带有不定参数的函数传递列表或者字典时,切记,一定要解包否则报错

lis=[1,2,3]def parse(*args):
    for i in args:
      print(i)parse(*lis)#解包

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享