裝飾器語法糖

2022-03-18 20:27:13 字數 957 閱讀 5913

什麼是裝飾器語法糖

toc裝飾器語法糖屬於裝飾器的

注意:在使用裝飾器語法糖時,裝飾器必須定義在被裝飾物件之上

import time

# 統計函式執行時間裝飾器

def inner(*args, **kwargs): # 被裝飾物件的引數

# 呼叫前增加新功能

start_time = time.time()

# 呼叫被裝飾物件,並接收返回值

res = func(*args, **kwargs)

# 呼叫後新增新功能

end_time = time.time()

print(end_time - start_time)

return res

return inner

# func函式需要執行3秒

# 無參裝飾器

# 使用裝飾器

def func():

time.sleep(3)

# 不用裝飾器

def func2():

time.sleep(3)

func()

計算程式的執行時間(利用函式的語法糖)

import time

def time_timer(func):

def inner():

start_time = time.time()

res = func()

end_time = time.time()

print(f'消耗了:')

return res

return inner

@time_timer

def download_movie():

time.sleep(3)

return '小澤.mp4'

download_movie()

Python語法糖 裝飾器

這裡用來記錄python各種甜得發膩的語法糖,以及各種變形用法。太初,神諭 pythonic import light,於是有了光。裝飾器是用來給函式增加新功能的,對於支援高階函式的語言,函式引數直接穿進去就好了。但是python提供了更為優雅的解決方案,只需要乙個 就能搞定。裝飾器函式需要單獨寫出...

Python語法糖 裝飾器

這裡用來記錄python各種甜得發膩的語法糖,以及各種變形用法。太初,神諭 pythonic import light,於是有了光。裝飾器是用來給函式增加新功能的,對於支援高階函式的語言,函式引數直接穿進去就好了。但是python提供了更為優雅的解決方案,只需要乙個 就能搞定。裝飾器函式需要單獨寫出...

Python裝飾器語法糖

裝飾器的固定格式 普通版本 def timer func def inner args,kwargs 執行函式之前要做的 ret func args,kwargs 執行函式之後要做的 return ret return inner wraps版本 from functools import wrap...