函数参数
位置参数
默认参数
def power(x):
return x*x
或者
def power(x, n = 2):
ans = 1
for i in range(n):
ans *= x
return ans
- 注意 默认参数必须指向不变对象
def add_end(L=[]):
L.append("END")
return L
结果会变成
修改方法
def add_end(L=None):
if L == None:
L = []
L.append("END")
return L
可变参数
讨论如何使得传入的参数的个数可变的。
传入list或者tuple
def calculate(numbers):
sum = 0
for number in numbers:
sum = sum + number * number
return sum
可变参数
def calculate(*numbers):
sum = 0
for number in numbers:
sum = sum + number * number
return sum
#可输入list/tuple
calculate(*[2,1,2])
#可一般输入
calculate(2,1,2)
关键字参数
允许传入任意个带名字的参数组成字典。
def person(name, age, **extra):
print("name: ", name, " age: ", age, " extra: ", extra)
- 输入形如
person("name", 23, sex = "male")
限制输入的key
代码1
def person(name, age, *, city, job):
print(name, age, city, job)
person("jack", 23, city = "beijing", job = "programmer")
代码2
def person(name, age, *city, job):
print(name, age, city, job)
代码3
def person(name, age, *, city = "Beijing", job):
print(name, age, city, job)
*args是可变参数,args接收的是一个tuple;
**kw是关键字参数,kw接收的是一个dict。