python:從入門到放棄 09 函式物件與閉包
阿新 • • 發佈:2022-03-18
目錄
函式物件
函式物件指的是函式可以被當做’資料’來處理,具體可以分為四個方面的使用
函式名可以當做變數名賦值
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