现在,我们也已经学习了python中的不同的参数类型
位置参数
默认参数
可变参数
关键字参数
命名关键字参数
这五种参数其实可以组合使用
但是 他们的顺序必须按照下方的顺序来
- 位置参数(必选参数)
- 默认参数
- 可变参数
- 命名关键字参数
- 关键字参数
必须按照上方的顺序来,否则就会出错
按照上方的规则来,我们看下示例
def student(name,age=6,*habit,city,**other):
print(name,age,habit,city,other)
上方的参数类型依次为:
必选参数(位置参数)、默认参数、可变参数、命名关键字参数(也可以当做位置参数)、关键字参数
我们调用一下试试
student('xiaoming',6,'play basketball',city='beijing',gender='male')
输出结果为
xiaoming 6 ('play basketball') beijing {'gender'='male'}
具体代码及处理结果图如下
需要注意的是
- 当「命名关键字参数」前边已经有「可变参数」时,可以将
,*,
省略掉 - 「命名关键字参数」的输出其实跟「位置参数」的输出很像,就是内容
- 而「关键字参数」的输出则是dict类型,即{‘key’='value'}表示方式
我们再举几个例子,来一起回顾一下
示例一
def function1(a,b,c=0,*args,**keyword):
print('a=',a)
print('b=',b)
print('c=',c)
print('args=',args)
print('keyword=',keyword)
解释一下参数:
a、b都是位置参数
c是默认参数
*args是可变参数
**keyword是关键字参数
那么我们推理下
-
如果我们调用这个函数
function1(1,2,3,4,5,6,name='count')
应该怎么输出呢
a= 1
b= 2
c= 3
arg= (4,5,6)
keyword= {'name'='count'}
请看实际输出效果
-
如果我们这么调用呢?
function1(1,2)
那么其实更简单了
a= 1
b= 2
c= 0
arg= ()
keyword= {}
-
这样呢?
function1(1,2,name='count')
会这么输出
a= 1
b= 2
c= 0
args= ()
keyword= {'name'='count'}
实例效果图如下
这样是不是清晰多了呢?
总结一下
函数的五种参数其实各有各的用处,组合起来也能够发挥很大的优势,但是我们在使用的使用一定要按照真实的需要去做,不要同时使用太多的组合,否则函数接口的可理解性很差。