python顺序排列函数,python 函数参数列表
Python中函数的参数问题有点复杂,主要是因为参数类型导致的情况比较多。下面我们来分析一下。
类型:默认参数、关键字参数、变长位置参数、变长关键字参数。
其实可以分为位置参数和关键字参数,因为位置参数放在list里,关键字参数放在dict里。Python在解释时先处理list,没有遇到关键字时追加到list,遇到关键字时开始做dict,直到结束。因此,位置参数必须放在关键字参数之前。
这里总结了三种模型:
1:没有默认功能时:
deftest(a,*args,c,d=3,**kwargs):
打印(一份)
打印(参数)
打印(c)
打印(d)
印刷品(夸脱)
测试(1,2,3,4,c=1,d=4,e=11,f=22)运行结果:
一个
(2,3,4)
一个
四
{E :11, F 336022} 2:有默认参数,参数取默认值,(默认参数放在args后面)*
deftest(a,*args,b=1,c,d=3,**kwargs):
打印(一份)
打印(参数)
打印(b)
打印(c)
打印(d)
印刷品(夸脱)
测试(1,2,3,4,c=1,d=4,e=11,f=22,h=66)运行结果:
(2,3,4)
一个
{E :11, F 336022, H 336066} 3:有默认参数,参数不带默认值,(默认参数放在args之前)*
deftest(a,b=1,*args,c,d=3,**kwargs):
打印(一份)
打印(b)
打印(参数)
打印(c)
打印(d)
印刷品(夸脱)
测试(1,2,3,4,c=1,d=4,e=11,f=22,h=66)运行结果:
一个
2
(3,4)
一个
四
{f:22, e:11, h :66 }总结:
从上面可以看出,其实基本顺序是position参数-keyword参数,然后默认参数是*args前后。
还有一点,前面提到了,关键字参数保存为字典类型,也就是无序的,但是**kwargs需要放在最后!
许多python培训视频可以在流行的IT软件开发工作室获得。欢迎在线学习!
本文转自:https://www.jianshu.com/p/625a400b563d
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。