【随记】将函数作为参数传入其他函数 | Python

函数作为参数

最近在阅读他人代码时发现函数可以作为参数传递进另一函数。
有点绕,举个例子:

def apply(func, x):
    """将函数 func 应用于参数 x,返回结果"""
    return func(x)

def double(x):
    """将参数 x 值乘以 2,返回结果"""
    return x * 2

result = apply(double, 4)
print(result)  # 输出 8

函数apply的参数分别为funcx,其中func是一个函数。

应用举例

回调函数:

  • 回调函数是指将一个函数作为参数传递给另一个函数,在特定事件发生时调用该函数。
    常见的应用场景是事件处理,例如点击按钮时执行某个操作。

映射函数:

  • 映射函数是指将一个函数作用于一个序列中的每个元素,返回一个新的序列。
    常见的映射函数有 map() filter()
    def to_upper_case(s):
        """将字符串 s 转化为大写字母"""
        return s.upper()
    
    strings = ['hello', 'world', 'python']
    
    # 这里传入了 to_upper_case 函数
    upper_case_strings = list(map(to_upper_case, strings))
    
    print(upper_case_strings)  # 输出 ['HELLO', 'WORLD', 'PYTHON']
    
    

排序函数:

  • 排序函数是指将一个函数作为参数传递给排序算法,用于自定义排序规则。
    例如 Python 中的sorted()函数就可以接受一个 key 参数,该参数是一个函数,用于指定排序规则。

装饰器:

  • 装饰器是一种高级技巧,可以将一个函数作为参数传递给另一个函数,并返回一个新的函数。
    该技巧通常用于给函数增加额外的功能,例如计时、缓存、调试等等。

这种将函数作为参数传递的技术在函数式编程中非常常见,可以方便地实现一些通用的操作,如映射、筛选、归约等等。

总结

函数可以作为参数传递给其他函数,也可以从其他函数中返回。

猜你喜欢

转载自blog.csdn.net/D2Ooo/article/details/129137628
今日推荐