python:从入门到放弃 09 函数对象与闭包
作者:互联网
目录
函数对象
函数对象指的是函数可以被当做’数据’来处理,具体可以分为四个方面的使用
函数名可以当做变量名赋值
def bar():
return add
func=bar()
func(1,2)
3
函数名还可以当成函数的实参
def foo(x,y,func):
return func(x,y)
foo(1,2,add)
3
函数名还可以当做函数的返回值
def bar():
return add
func=bar()
func(1,2)
3
函数名可以作为容器类型的元素
'''容器类型:内部可以存档多个元素的数据类型>>>:列表、元组、字典'''
def index():
print('from index')
l1 = [11, 22, 33, 44, index]
print(l1)
l1[-1]() # index()
闭包函数
闭包函数的特征:
1.闭:定义在函数内部的函数
2.包:内部函数使用了外层函数名称空间中的名字
def outer():
x = 999
def inner(): # 闭包函数
print('from outer>>>inner',x)
return inner
x = 666
res = outer()
res() # from outer>>>inner 999
'''闭包函数inner使用的是函数outer的局部名称空间的变量X,而非全局名称空间的变量X'''
闭包函数实际应用
目前为止,我们得到了两种为函数体传值的方式,一种是直接将值以参数的形式传入
,另外一种就是将值包给函数
#方式一:
def index(username):
print(username)
index('Rain') # 以参数的形式传入
#方式二:
def outer():
username = 'Rain'
def index():
print(username) # 使用的是outer函数包给index函数的值
return index
res = outer()
res() # Rain
标签:闭包,index,outer,函数,python,09,func,def 来源: https://www.cnblogs.com/RainKz/p/16023773.html