Python函数参数的使用方法有哪些?
Python函数参数的使用方法有以下几种:
1. 位置参数:函数定义时,通过参数名来接收传入的参数。调用函数时需要按照定义的顺序传入参数。例如:
def add(a, b):
return a + b
print(add(2, 3)) # 输出 5
2. 默认参数:函数定义时,为某些参数指定默认值。调用函数时可以不传递这些参数,使用默认值。例如:
def power(x, n=2):
return x ** n
print(power(3)) # 输出 9
print(power(2, 3)) # 输出 8
注意:默认参数必须指向不可变对象,否则会导致期望结果出错。
3. 可变参数:函数定义时,参数前加上 * 号,表示接收任意个参数,存储为一个元组。调用函数时可以传入任意个参数,它们会被封装成一个元组。例如:
def calc(*numbers):
sum = 0
for n in numbers:
sum += n
return sum
print(calc(1, 2, 3)) # 输出 6
4. 关键字参数:函数定义时,参数前加上 ** 号,表示接收任意个关键字参数,存储为一个字典。调用函数时可以传入任意个关键字参数,它们会被封装成一个字典。例如:
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
person('Alice', 25, city='New York', gender='female') # 输出 name: Alice age: 25 other: {'city': 'New York', 'gender': 'female'}
5. 命名关键字参数:函数定义时,参数列表中的 * 号后面的参数被视为命名关键字参数,调用函数时必须按照参数名称传入值。例如:
def person(name, age, *, city, job):
print(name, age, city, job)
person('Bob', 30, city='Beijing', job='Engineer') # 输出 Bob 30 Beijing Engineer
注意:命名关键字参数必须传入参数名,这和位置参数不同。如果函数定义中已经有一个可变参数,后面的命名关键字参数就不需要再加入 * 号。
6. 参数组合:函数定义时可以结合使用多种参数形式。例如:
def f(a, b, c=0, *args, **kw):
print('a:', a, 'b:', b, 'c:', c, 'args:', args, 'kw:', kw)
f(1, 2) # 输出 a: 1 b: 2 c: 0 args: () kw: {}
f(1, 2, 3) # 输出 a: 1 b: 2 c: 3 args: () kw: {}
f(1, 2, 3, 'a', 'b') # 输出 a: 1 b: 2 c: 3 args: ('a', 'b') kw: {}
f(1, 2, 3, 'a', 'b', x=99) # 输出 a: 1 b: 2 c: 3 args: ('a', 'b') kw: {'x': 99}
通过以上几种参数的使用方法,我们可以根据具体的需求来定义和调用函数,更加灵活地进行函数的编写和使用。
