Python的参数传递形式

def foo1(arg1,arg2,key1=1,key2=2,*arg,**keywords):
    print "arg1 parameters is ",arg1
    print "arg2 parameters is ",arg2
    print "key1 parameter is ",key1
    print "key2 parameter is ",key2
    print "Arbitrary parameter is ", arg
    print "keywords parameter is ",keywords

foo1(1,2,3,4,5,6,k1=1,k2=2,k3=3)

输出:

arg1 parameters is  1
arg2 parameters is  2
key1 parameter is  3
key2 parameter is  4
arg parameter is  (5, 6)

keywords parameter is  {'k3': 3, 'k2': 2, 'k1': 1}

作为一个Python初学者,一个Python菜鸟,我不知道大家是不是和我一样,学习很很费力。最开始的时候真的是很费力。上面的例子我一开始的时候,始终弄不明白*arg,**keywords是干啥的。起什么作用。那么现在我给大家解释一下。

参数传递形式:

位置参数:从左至右。

关键字参数:按照关键字名称匹配

混合上面两种方式时候:所有的位置参数,所有关键字参数

定义函数时候使用默认参数:有默认值参数

混用有默认值参数和无默认值参数时候,无默认值参数放在前面。

调用函数时候使用可变参数需求:

定义函数时候使用*:收集位置参数

定义函数时候使用**:收集关键字参数


猜你喜欢

转载自blog.csdn.net/qq_20113327/article/details/72880120