,

python函数

默认参数 为参数指定默认值,调用时可省略: 注意: 默认参数必须放在非默认参数后面。 关键字参数 通过参数名传…

默认参数

为参数指定默认值,调用时可省略:

def greet(name, greeting="Hello"):
   print(f"{greeting}, {name}!")

greet("Alice")              # Hello, Alice!
greet("Bob", "Hi")          # Hi, Bob!

注意: 默认参数必须放在非默认参数后面。

# 错误示例
# def greet(greeting="Hello", name): # SyntaxError!
#     pass

关键字参数

通过参数名传递,顺序可以任意:

def person_info(name, age, city):
   print(f"{name}, {age}岁, 来自{city}")

# 关键字参数,顺序无关
person_info(age=25, city="北京", name="Alice")
# Alice, 25岁, 来自北京

混合使用: 位置参数在前,关键字参数在后。

person_info("Alice", age=25, city="北京")  # 正确
# person_info(name="Alice", 25, "北京")   # 错误!位置参数不能在关键字参数后

可变参数

*args —— 接收任意数量的位置参数

def sum_all(*args):
   total = 0
   for num in args:
       total += num
   return total

# 调用
print(sum_all(1, 2, 3))     # 6
print(sum_all(1, 2, 3, 4))  # 10
print(sum_all())            # 0

args 的本质: 函数内部是一个元组

def show_args(*args):
   print(type(args))  # <class 'tuple'>
   print(args)        # (1, 2, 3)

show_args(1, 2, 3)

**kwargs —— 接收任意数量的关键字参数

def print_info(**kwargs):
   for key, value in kwargs.items():
       print(f"{key}: {value}")

# 调用
print_info(name="Alice", age=25, city="北京")
# name: Alice
# age: 25
# city: 北京

kwargs 的本质: 函数内部是一个字典

def show_kwargs(**kwargs):
   print(type(kwargs))  # <class 'dict'>
   print(kwargs)        # {'name': 'Alice', 'age': 25}

show_kwargs(name="Alice", age=25)

参数顺序规则

定义函数时,参数必须按以下顺序:

def func(位置参数, 默认参数, *args, **kwargs):
   pass

# 示例
def demo(a, b=2, *args, **kwargs):
   print(f"a={a}, b={b}")
   print(f"args={args}")
   print(f"kwargs={kwargs}")

demo(1, 3, 4, 5, x=10, y=20)
# a=1, b=3
# args=(4, 5)
# kwargs={'x': 10, 'y': 20}

多返回值

Python 函数可以同时返回多个值(实际是返回元组):

def min_max(numbers):
   return min(numbers), max(numbers)

minimum, maximum = min_max([3, 1, 4, 1, 5])
print(minimum)  # 1
print(maximum)  # 5

# 本质上返回的是元组
result = min_max([3, 1, 4])
print(result)       # (1, 4)
print(type(result)) # <class 'tuple'>

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

About the Author

每个人都有自己得时区,在自己得时区里,一切都是准时的。

BlockSpare — News, Magazine and Blog Addons for (Gutenberg) Block Editor