閉包和裝飾器

2021-09-20 15:42:30 字數 1102 閱讀 5355

#閉包三大條件:

#1.必須有內嵌函式

#2.內嵌函式用了外部函式的變數

#3.返回的是內部函式的函式名

def waibu(n):

a=100

def neibu(x):

return x+a-n

return neibu

x=waibu(5)

print(x(10)) #105

print(x(11)) #106

#裝飾器

import time

def zhuangshi(fuc):

def neibu():

print(『』)

fuc()

print('

』)return neibu

@zhuangshi

def hanshu():

print(『熱烈歡迎領導視察』)

hanshu()

輸出為#**************

#熱烈歡迎領導視察

#**************

#兩個裝飾器

import time

def zhuangshi(func):

def neibu(namex):

print(』+++++++++++++』)

func(namex)

print(』+++++++++++++』)

return neibu

def zhuangshi2(func):

def neibu(namex):

print(』************』)

func(namex)

print(』************』)

return neibu

@zhuangshi

@zhuangshi2

def hanshu(name):

print(『熱烈歡迎來』,name)

hanshu(『北京』)

輸出為#+++++++++++++

#************

#熱烈歡迎來 北京

#************

#+++++++++++++

閉包和裝飾器

叫什麼 閉包有什麼用 跟函式相對可以把外層函式的引數保留下來 怎麼寫 def 外層函式 引數 def 內層函式 pass return 內層函式 心法 兩個函式的巢狀,外層函式返回內層函式的引用,外層函式必須有引數func 裝飾前的test,call fun 三者引數一樣的 def set fun ...

閉包和裝飾器

閉包 兩個函式的巢狀,外部函式返回內部函式的引用,外部函式一定有引數 def 外部函式 引數 def 內部函式 pass return 內部函式 他跟函式之間的區別 1.格式兩個函式巢狀 2.閉包外部函式的引數可以在記憶體中保持 裝飾器是什麼 閉包加 裝飾器的作用 在不改變原先的函式值跟呼叫的方式,...

閉包和裝飾器

在python中建立乙個閉包可以歸結為以下三點 閉包思考 1.閉包似優化了變數,原來需要類物件完成的 作,閉包也可以完成 2.由於閉包引 了外部函式的區域性變數,則外部函式的區域性變數沒有及時釋放,消耗記憶體 裝飾器 開放封閉原則 封閉 已實現的功能 塊 開放 對擴充套件開發 例子 def w1 f...