python闭包函数

# 一:大前提
# 闭包函数=名称空间与作用域+函数嵌套+函数对象
# 核心点:名字的查找关系是以函数定义阶段为准


# 什么是闭包函数
# "闭"函数指的是该函数是内嵌函数
# "包"函数指的是该函数包含对外层函数作用域名字的引用(不是对全局作用域)


# 闭包函数:名称空间与作用域+函数嵌套
def f1():
x = 1
def f2():
print(x)
f2()


x = 111
f1()



# 闭包函数:函数对象

def f1():
x = 1
def f2():
print(x)
return f2


f = f1()
print(f)
f()


# 为何要有闭包函数=》闭包函数的应用场景
# 两种为函数体传参的方式
# 方式一: 直接把函数体需要的参数定义成形参
def f2(x):
print(x)
f2(1)


# 方式二:
def f1():
x = 3
def f2():
print(x)
return f2

f = f1()
f()
posted @ 2020-05-23 11:22  Pykingchen  阅读(165)  评论(0编辑  收藏  举报