python 函数参数:必选参数、默认参数、可变参数、关键字参数 和 命名关键字参数

版权声明:本文为博主原创文章,转载请注明转自 Scofield's blog[http://blog.csdn.net/scotfield_msn] https://blog.csdn.net/Scotfield_msn/article/details/60365842

python 函数参数:必选参数、默认参数、可变参数、关键字参数 和 命名关键字参数


在 Python 中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数 5种参数形式。

这 5 种参数都可以组合起来使用,但是注意,参数定义的顺序必须是:必选参数、默认参数、可变参数/命名关键字参数和关键字参数。


def f1(a,b,c=0,*args,**kw):
	print(a,b,c,args,kw)

#调用情况:
f1(1,2)
f1(1,2,c=4)
f1(1,3,6,'aw','wad',x=123,y='1232')

其中:

a,b 为必选参数

c=0 为默认参数

*args 为可变参数,可变参数允许你传入 0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple

**kw 为关键字参数,关键字参数允许你传入 0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict



-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

def person(name,age,*,city='hongkong',job='coder'):
	print(name,age,city,job)
person('scofff',212,city='homy',job='eatter')

* 后面的两个参数为命名关键字参数

对于关键字参数,函数的调用者可以传入任意不受限制的关键字参数,至于到底传入了哪些,就需要在函数内部通过 kw 检查。
与关键字参数 **kw 不同,命名关键字参数需要一个特殊分隔符 * * 后面 的参数被视为命名关键字参数,如果没有*号,那么后面的参数将被视为普通的未位置参数。

命名关键字参数必须传入参数名,而命名关键字参数可以有缺省值,这和位置参数不同。


猜你喜欢

转载自blog.csdn.net/Scotfield_msn/article/details/60365842