python 函数作为参数传递
时间: 2024-11-21 15:05:07 浏览: 19
在 Python 中,函数可以像其他数据类型一样作为参数传递给另一个函数,这种技术被称为高阶函数(Higher-Order Functions)。主要有以下几种情况:
1. **lambda 函数**:Python 的 `map()`、`filter()` 和 `reduce()` 等内置函数就支持接收 lambda 函数作为参数,用于对序列进行操作。
```python
def apply_operation(numbers, func):
return map(func, numbers)
# 使用函数作为参数
numbers = [1, 2, 3, 4]
squared = apply_operation(numbers, lambda x: x**2) # 输出 [1, 4, 9, 16]
```
2. **普通函数**:也可以直接将函数名作为参数传递,如创建装饰器:
```python
def my_decorator(func):
def wrapper():
print("Before the function call")
func()
print("After the function call")
return wrapper
@my_decorator
def say_hello():
print("Hello")
say_hello() # 输出: Before the function call Hello After the function call
```
3. **闭包**:当内部函数引用了外部函数的变量时,会形成一个闭包,这在某些高级编程场景也很常见。
通过这种方式,你可以将代码的行为作为可配置的部分,使得程序更具有灵活性和模块化。
阅读全文