python函数用法(四)
1. 回调函数
回调函数是一种将函数作为参数传递给其他函数,并在需要的时候被调用的技术。回调函数允许我们实现异步编程,处理事件驱动的情况,以及实现更复杂的控制流程。
python复制代码
|
def greet(name): |
|
print(f"Hello, {name}!") |
|
|
|
def process_user(user_data, callback): |
|
# 假设这里有一些处理逻辑 |
|
# ... |
|
# 处理完成后,调用回调函数 |
|
callback(user_data['name']) |
|
|
|
user = {'name': 'Alice'} |
|
process_user(user, greet) # 输出:Hello, Alice! |
在上面的例子中,greet 函数是一个回调函数,它被传递给 process_user 函数。当 process_user 函数完成其任务后,它调用 callback 参数,即 greet 函数,并传递用户名称作为参数。
2. 生成器表达式
生成器表达式是类似于列表推导式的语法结构,但返回的是一个生成器对象,而不是列表。生成器表达式在计算时只生成所需的值,因此它们比列表推导式更加内存友好,尤其适用于处理大量数据或无限序列。
python复制代码
|
# 使用生成器表达式计算1到10的平方 |
|
squares = (x ** 2 for x in range(1, 11)) |
|
|
|
# 遍历生成器对象并打印每个值 |
|
for square in squares: |
|
print(square) |
3. 函数的局部和全局变量
在Python中,函数内部的变量默认为局部变量,即它们只在函数内部可见。如果需要在函数内部访问或修改全局变量,需要使用 global 关键字。
python复制代码
|
x = 10 # 全局变量 |
|
|
|
def modify_global(): |
|
global x |
|
x = 20 |
|
|
|
modify_global() |
|
print(x) # 输出:20 |
需要注意的是,过度使用全局变量可能导致代码难以理解和维护。在大多数情况下,最好通过参数和返回值来传递函数之间的数据。