函数对象指的是函数可以被当做’数据’来处理,具体可以分为四个方面的使用
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