今天小伙伴们跟我进入第五天的Python课程学习,主要是关于函数的位置传参,关键传参和可变性和解包传参这其中的具体定义以及它们的使用场景
`
函数调用时传递参数的方式有多种,包括位置传参、关键词传参、多个参数解包、参数默认值等。
最常见的传参方式,参数按定义的顺序依次传入函数。
示例:
def greet(name, age):
print(f"Hello, {name}. You are {age} years old.")
greet("Alice", 30) # 输出: Hello, Alice. You are 30 years old.
通过指定参数的名称来传值,无顺序限制,代码可读性较高。
示例:
def greet(name, age):
print(f"Hello, {name}. You are {age} years old.")
greet(age=30, name="Alice") # 输出: Hello, Alice. You are 30 years old.
定义函数时可为某些参数指定默认值,如果不传参则使用默认值。默认值参数必须位于无默认值参数的后面。
示例:
def greet(name, age=25):
print(f"Hello, {name}. You are {age} years old.")
greet("Alice") # 输出: Hello, Alice. You are 25 years old.
greet("Bob", 30) # 输出: Hello, Bob. You are 30 years old.
使用 ∗args*args∗args 可让函数接受任意数量的位置参数。∗args*args∗args 会将多余的位置参数收集成一个元组。
示例:
def sum_numbers(*args):
return sum(args)
print(sum_numbers(1, 2, 3)) # 输出: 6
print(sum_numbers(1, 2, 3, 4)) # 输出: 10
使用 ∗∗kwargs**kwargs∗∗kwargs 可以让函数接受任意数量的关键词参数。∗∗kwargs**kwargs∗∗kwargs 会将多余的关键词参数收集成一个字典。
示例:
def print_info(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_info(name="Alice", age=30)
# 输出:
# name: Alice
# age: 30
Python 允许在调用函数时解包序列或字典,使其作为位置参数或关键词参数传递给函数。
使用 ∗*∗ 解包
def greet(name, age):
print(f"Hello, {name}. You are {age} years old.")
args = ["Alice", 30]
greet(*args) # 输出: Hello, Alice. You are 30 years old.
使用 ∗∗**∗∗ 解包
def greet(name, age):
print(f"Hello, {name}. You are {age} years old.")
kwargs = {"name": "Alice", "age": 30}
greet(**kwargs) # 输出: Hello, Alice. You are 30 years old.
* | ** | 备注 | |
---|---|---|---|
可变参数 | 位置参数 | 关键词参数 | 用在形参前面 |
参数解包 | 位置参数解包,比如list、tuple | 关键词参数解包,比如dict | 用在实参前面 |
在函数调用时,可以混合使用位置参数和关键词参数,但位置参数必须放在关键词参数前面。
示例:
def greet(name, age, city="Unknown"):
print(f"Hello, {name}. You are {age} years old and live in {city}.")
greet("Alice", 30) # 输出: Hello, Alice. You are 30 years old and live in Unknown.
greet("Bob", 25, city="New York") # 输出: Hello, Bob. You are 25 years old and live in New York.
经过今天的学习,相信小伙伴们跟随博主已经对python的参数以及函数有一个基本的概念了,再后续我们也会越来越频繁的使用我们所学的东西,希望接下来的时间大家可以跟随博主继续努力的学习!!!