【python 语法】函数参数

2024-01-15 00:00:00

目录:

位置参数

位置参数是最基本的参数类型,调用时必须按照函数定义时的顺序传递对应数量的参数。

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)

返回首页

本文总阅读量  次
皖ICP备17026209号-3
总访问量: 
总访客量: