Python--闭包及其运用(闭包可以获取函数内部的变量)

1. 闭包及其运用

1.1 函数的引用

在这里插入图片描述

示例:

def infoout():
    print("Work hard!")


infoout()
print(infoout)

运行结果:
在这里插入图片描述
在这里插入图片描述


1.2 闭包概述

闭包可以获取函数内部的变量。

如果在一个函数的内部定义了另外一个函数,外部的函数叫做外函数,
内部的函数叫做内涵数。闭包是指在一个外函数中定义了一个内涵数,
内涵数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。

闭包需要满足3个条件:
1. 在函数嵌套的前提下。
2. 内部函数使用了外函数的变量(还包括外部函数的参数)
3. 外部函数返回了内部函数。

示例:

# 函数嵌套

# 外部函数
def outer(num_01):
    # 内部函数
    def inner(num_02):
        # 内部函数必须使用了外部函数的变量
        print(num_01 + num_02)

    # 外部函数返回了内部函数,这里返回的内部函数就是闭包
    return inner


# 创建闭包实例
outer_new = outer(10)
# 执行闭包
outer_new(30)

运行结果:
在这里插入图片描述


1.3 闭包的运用

在这里插入图片描述

闭包主要在面向对象、装饰器以及实现单例模式三个方面应用居多。

示例:利用闭包计算函数式:y=ax+b的函数值。

def calc_y(a, b):
    def calc(x):
        print(a * x + b)

    return calc


calc_1 = calc_y(2, 5)
calc_1(3)

运行结果:
在这里插入图片描述



猜你喜欢

转载自blog.csdn.net/I_r_o_n_M_a_n/article/details/115336767