python三大神器 裝飾器

2021-09-17 18:29:01 字數 1241 閱讀 1785

裝飾器」(decorator)能增強now()函式的功能,比如,在函式呼叫前後自動列印日誌,但又不希望修改now()函式的定義,這種在**執行期間動態增加功能的方式,稱之為。

本質上,decorator就是乙個返回函式的高階函式。所以,我們要定義乙個能列印購物的decorator,可以定義如下:

def inner():

print('閉包函式')

func()

return inner

def jojncar():

print('加入購物車')

def cost():#新增裝飾器cost()

print('付款')

if __name__=='__main__':

cost()

jojncar()

**output**

購物付款

購物加入購物車

工廠函式示例如下:

'''建立一工廠函式'''

import time

def create(choose):

''':param choose: #選擇元素

:return: #返回裝飾器物件

'''def warpper(func):

def inner():

if choose=='第一種':

print('1登陸驗證',time.ctime(1))

elif choose=='第二種':

print('2登陸驗證',time.asctime())

else:

print('登陸失敗')

func()

return inner

return warpper

@create('第二種')

def cost():

print('總付款金額')

if __name__=='__main__':

cost()

@create('第一種')

def cost1():

print('總付款金額')

if __name__=='__main__':

cost1()

**output**

2登陸驗證 tue apr 9 20:56:30 2019

總付款金額

1登陸驗證 thu jan 1 08:00:01 1970

總付款金額

Python三大神器之 裝飾器

def info print 這是學生資訊 info a info print id a print id info a 展示 4009632 4009632 這是學生資訊def info return 小王 defsuccess print 返回值函式 def printinfo func par...

python三大神器裝飾器 Python 裝飾器

裝飾器 本質是函式,用於裝飾其他函式,為其他函式新增附加功能 原則 1.不能比修改被裝飾的函式的 2.不能修改被裝飾的函式的呼叫方式 import time def timmer func def warpper args,kwargs start time time.time func stop ...

搞定三大神器之 Python 裝飾器

學會 python 裝飾器 裝飾器,幾乎各大python框架中都能看到它的身影,足以表明它的價值!它有動態改變函式或類功能的魔力!本專題的目錄 學會 python 裝飾器 1 什麼是裝飾器 2 裝飾器的結構 3 為什麼要這樣 4 裝飾乙個函式 5 裝飾乙個類 6 裝飾器層疊 7 溫馨提醒 總結1 什...