文章目录
前言
提示:这里是我个人学习廖雪峰python的笔记,仅供参考!
提示:以下是本篇文章正文内容,下面案例可供参考
一、python函数参数的类型
- 位置参数:必须填入的参数
- 默认参数:(选填)为了简化接口调用而提前写好了参数,同时也可以在调用的时候再赋值
- 可变参数:个人理解为变长参数,即参数的个数可以改变,从0到正无穷
- 关键字参数:(选填)dict类型,可以自定义key和value
- 命名关键字参数:(选填)提前写好了key,在调用时必须写明k关键字
- 组合参数:是以上五种参数的杂糅,即同时存在
二、举例
1.位置参数
def power(x):
return x * x
# 这是一个计算平方的方法,x为位置参数,
#即在调用时必须传入一个x的值,参数数量为1;参数类型为int型
2.默认参数
def person(name,sex,country='china'):
print('name' = name ;'sex' = sex ; 'country' = country)
#这里默认国籍为中国,这是为了简化调用时参数输入而设置的
关键字参数
关键字参数允许你填入一个或任意个含参数名的参数,这些参数在函数内部被组装成dict
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
>>>person('yanchao','male',21,'city':xinyang,'hobit':sleep)
name :yanchao age : 21 other:'city':xinyang 'hobit':sleep
# 注意关键字参数需要用**标明,且数据以字典的键值对形式存储
可变参数
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum + n * n
return sum
# 这是一个计算 a2 + b2 + c2 + ……的函数,参数输入形式为
calc(1,2,3,)
*numbers 是dict类型,*表示这是一个可变参数,参数输入时时tuple类型,在函数内部转为dict类型
命名关键字参数
def person(name, age, *, city, job):
print(name, age, city, job)
# 这里只接受关键字为city和job的参数,另外*是必须的,
#它用来表明后面的参数是已被命名的关键字参数
# 它和关键字参数的区别是,丧失了任意命名关键字的权利,这里关键字
#被限定为city和job;当然,这两种参数形式都是选填项。
组合参数
def f1(a, b, c=0, *args, **kw):
print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
# a,b是位置参数是必填项;c是默认参数是选填项;*arg是变长参数,可以填写多个参数,也是选填项;**kw是关键字参数,参数的输入形式为key:value。
---------------------------------------------------------------
def f2(a, b, c=0, *, d, **kw):
print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
>>> f2(1, 2, d=99, ext=None)
a = 1 b = 2 c = 0 d = 99 kw = {'ext': None}
# a,b是位置参数,c是默认参数,*表明后面的参数是已被命名的关键字参数,在输入参数时必须带上关键字,**kw是关键字函数,参数输入形式为key:vaule;