标签:extra The 有用 jackson alc print while 学习笔记 函数参数
1. 位置参数:一般的参数
2. 默认参数:
1 def power(x, n=2): 2 s = 1 3 while n > 0: 4 n = n - 1 5 s = s * x 6 return s
参数里有默认赋值,调用时用power(5)就是平方,如果power(5, 3)就是立方了
如果有多个默认参数,调用时前面用默认参数,后面不是用默认参数,则需要在调用语句中写出“参数名 = 参数值”,比如下面这个情况
1 def enroll(name, gender, age=6, city=‘Beijing‘): 2 print(‘name:‘, name) 3 print(‘gender:‘, gender) 4 print(‘age:‘, age) 5 print(‘city:‘, city)
enroll(‘bob‘,‘M‘,7)这样没有参数名是可以的,city就是用默认参数‘beijing‘,age没有用,enroll(‘sary‘,‘F‘,‘hangzhou‘)这样是错误的,因为‘hangzhou‘不是age,是city,因此需要这样使用:enroll(‘sary‘,‘F‘,city=‘hangzhou‘),这样age=6, city=‘hangzhou‘
3. 可变参数
1 def calc(numbers) 2 sum = 0 3 for n in numbers: 4 sum = sum + n * n 5 return sum
如果使用上面这个代码,对于一个list或者tuple输入值,比如[1,2,3],调用的时候需要这么写:calc([1,2,3])或者calc((1, 2, 3)),很麻烦
所以可变参数需要在numbers前加*
1 def calc(*numbers) 2 sum = 0 3 for n in numbers: 4 sum = sum + n * n 5 return sum
这样就可以这样调用了:calc(1, 2, 3)。
对于nums = [1, 2, 3]这个list时,如果用上面这个可变参数,则不能写成calc(nums),需要写成calc(nums[0], nums[1], nums[2])或者calc(*nums)
4. 关键字参数
1 def person(name, age, **kw) 2 print(‘name: ’, name, ‘age: ‘, age, ‘other: ‘, kw)
**kw是一个dict,调用语句为person(‘jackson‘, 30, gender=‘M‘, city=‘beijing‘)后,结果为name: jackson age:30 other:{‘gender‘ : ‘M‘, ‘city‘ : ‘beijing‘}
对于extra = {‘gender‘ : ‘M‘, ‘city‘ : ‘beijing‘}这种已经定义好的dict,可以这么调用:person(‘jackson‘, 30, **extra)
5. 命名关键字参数
这个感觉用处不大
标签:extra The 有用 jackson alc print while 学习笔记 函数参数
原文地址:https://www.cnblogs.com/yingzhongwen/p/8967437.html