Python 函数传参机制是指在函数调用时,从外界向函数中传入参数的机制。Python支持两种方式的参数传递:位置参数和关键字参数。
位置参数传递
位置参数传递是指按照位置顺序将参数传递给函数。例如:
def add(a, b):
return a + b
result = add(2, 3)
print(result) # 输出结果为 5
在上面的例子中,add函数有两个参数,以位置参数的方式将 2 和 3 传递给了 add 函数,返回结果为 5。
关键字参数传递
关键字参数传递是指按照参数名将参数传递给函数。例如:
def add(a, b):
return a + b
result = add(a=2, b=3)
print(result) # 输出结果为 5
在上面的例子中,add函数有两个参数,以关键字参数的方式将 a=2 和 b=3 传递给了 add 函数,返回结果为 5。
默认参数
在函数定义时可以给参数设置默认值,这样在调用函数时可以不用传入此参数的值。例如:
def add(a, b=1):
return a + b
result1 = add(2)
result2 = add(2, 3)
print(result1) # 输出结果为 3
print(result2) # 输出结果为 5
在上面的例子中,函数 add 的参数 b 设置了默认值为 1 ,因此在调用 add 函数时只传递一个参数,即 a=2 时,函数可以正常计算并返回 3,而当传递两个参数时,函数将使用传递的参数值计算并返回 5。
可变参数
在函数定义时,可以使用 *args
来定义可变参数,表示可以传递任意个参数,这些参数将以元组(tuple)的方式传递给函数。例如:
def add(*args):
result = 0
for arg in args:
result += arg
return result
result = add(1, 2, 3, 4)
print(result) # 输出结果为 10
在上面的例子中,函数 add 的参数定义为可变参数 *args
,在调用 add 函数时,可以传递任意个参数给该函数,这些参数会被打包成一个元组 (1, 2, 3, 4) 传递给函数。函数里使用 for 循环遍历元组,并将每个元素计算出来,最终返回结果为 10。
关键字可变参数
在函数定义时,可以使用 **kwargs
来定义关键字可变参数,表示可以传递任意个关键字参数,这些参数将以字典(dict)的方式传递给函数。例如:
def print_info(name, age, **kwargs):
print("name:", name)
print("age:", age)
print("other:", kwargs)
print_info("张三", 24, city="北京", phone="13312345678")
在上面的例子中,函数 print_info
的 **kwargs
参数表示可以传递任意个关键字参数给函数。在调用 print_info
函数时,除了传入必需的 name
和 age
参数外,还传入了两个关键字参数 city
和 phone
,这些参数会被打包成字典 {city:北京, phone:13312345678}
,然后传递给函数。函数里使用 **
操作符展开字典,并将字典里的键值对作为参数传递给函数。运行结果如下:
name: 张三
age: 24
other: {'city': '北京', 'phone': '13312345678'}
以上就是 Python 函数传参机制及使用方法的完整攻略,希望能对您有所帮助。