目录:
位置参数是最基本的参数类型,调用时必须按照函数定义时的顺序传递对应数量的参数。
def add(x, y):
return x + y
result = add(3, 5) # x=3, y=5
print(result) # 输出: 8
位置参数是必传参数,必须按先后顺序一一对应,个数不能多也不能少。
关键字参数通过 key=value 的形式传递,可以不关心参数的顺序。
def greet(name, message):
print(f"Hello, {name}! {message}")
greet(name="Alice", message="How are you?")
greet(message="How are you?", name="Alice") # 顺序可以调换
使用关键字参数调用函数对参数顺序没有要求,但如果有位置参数,位置参数必须放在关键字参数前面。
默认参数在函数定义时为参数指定默认值,调用时可以不传递该参数。
def greet(name, message="Nice to meet you!"):
print(f"Hello, {name}! {message}")
greet("Bob") # 使用默认的message值
greet("Alice", "How are you?") # 覆盖默认值
使用 *args 可以接收任意数量的位置参数,这些参数会被打包成一个元组。
def say_hello(*names):
for name in names:
print(f"Hello, {name}!")
say_hello("Alice", "Bob", "Charlie")
可变参数可以接收0个或多个参数。在函数定义时,形参中的 * 会将溢出的位置实参全部接收,存储为元组形式。
在函数调用时,可以使用 * 对可迭代对象进行解包,将其元素作为位置参数传递。
def add(a, b, c):
return a + b + c
numbers = [1, 2, 3]
result = add(*numbers) # 等价于 add(1, 2, 3)
使用 **kwargs 可以接收任意数量的关键字参数,这些参数会被打包成一个字典。
def person_info(**info):
for key, value in info.items():
print(f"{key}: {value}")
person_info(name="张三", age=20, city="北京")
形参中的 ** 会将溢出的关键字实参全部接收,存储为字典形式。
在函数调用时,可以使用 ** 可以对字典进行解包,将其键值对作为关键字参数传递。
def person(name, age, city):
print(f"{name}, {age}, {city}")
info = {"name": "李四", "age": 30, "city": "上海"}
person(**info)
↶ 返回首页 ↶