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

  • Post author:
  • Post category: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

的参数分别为

func



x

,其中

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 参数,该参数是一个函数,用于指定排序规则。



装饰器:

  • 装饰器是一种高级技巧,可以将一个函数作为参数传递给另一个函数,并返回一个新的函数。

    该技巧通常用于给函数增加额外的功能,例如计时、缓存、调试等等。

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



总结

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



版权声明:本文为D2Ooo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。