python回调函数,闭包,派生

回调函数:传入函数名称,在函数内调用该函数,传参,在特定的地方执行

def sum(a,b,callback):
    c = a+b
    callback(c)

def s_print(msg):
    print("callback:%s"%msg)

def s_print2(msg):
    print("callback2:%s"%msg)

sum(1, 3, s_print2)
 
闭包:
def outer_function(x):
    def inner_function(y):
        return x + y
    return inner_function
closure = outer_function(10)
print(closure(5))  # 输出:15

Python闭包的作用是将函数和其相关的引用变量封装在一个包裹(closure)中,以便在函数外部访问这些变量。具体而言,闭包允许函数访问其被定义时所在的环境中的变量,即使函数在其他环境中被调用。

闭包在Python中有以下几个作用:

  1. 保护数据:闭包可以将函数内部的变量隐藏起来,只允许通过函数的接口来访问。这样可以防止对数据的直接修改或访问,增强数据的安全性。

  2. 延长变量的生命周期:当函数执行完毕后,其内部变量通常会被销毁。但是,如果在函数内部定义了一个闭包,并返回该闭包作为结果,则内部变量会被封装在闭包中,从而延长了其生命周期,使得这些变量能够在函数执行完毕后仍然被访问和使用。

  3. 实现装饰器:闭包是实现Python装饰器的基础。装饰器是一种用于在不修改函数源代码的情况下,为函数添加额外功能的技术。通过使用闭包,我们可以在一个函数内部定义另一个函数,并将其作为闭包返回,从而实现装饰器的功能。

  4. 实现回调函数:闭包可以作为回调函数(callback)的一种形式。回调函数是一种将函数作为参数传递给其他函数,并在某个特定事件发生时被调用的技术。通过使用闭包,我们可以在回调函数中访问外部函数中的变量,从而实现更灵活的回调机制。

总之,闭包提供了一种灵活的方式来封装函数和相关变量,并延长其生命周期,同时也为实现装饰器和回调函数等功能提供了基础。

参考: https://www.yisu.com/ask/64670301.html

 

派生:

派生是面向对象编程中的一个重要概念,它允许一个类继承另一个类的属性和方法。派生用于创建新类,新类可以重用和扩展现有类的功能。

 
posted @ 2024-09-03 17:34  2020不在低调  阅读(49)  评论(0)    收藏  举报