python基礎裝飾器及能接收引數的裝飾器

2021-09-22 08:36:57 字數 1300 閱讀 9855

北京今天天兒不錯,在家寫點部落格吧。。。。

常用的裝飾器如下

from functools import wraps

def decorator(func):

"""使用系統內建的warps裝飾器能夠使被裝飾的函式保留他原始的資訊,

直觀一點就是在你print(func.__name__)的時候這個函式的名字仍然是func而不是new_func.

"""@warps

def new_func(*args,**kwargs):

print('新增裝飾')

return func(*args,**kwargs)

return new_func

"""只需在需要裝飾的函式前@你寫好的裝飾器即可,裝飾器格式如上

"""@decorator

def func():

print('原函式')

但是有的時候我們需要更加多樣功能的裝飾器,譬如可以根據接收引數不同而進行不同的裝飾,舉個栗子。

@decorator(method='get')

def func():

pass

這就是乙個典型的可以接收引數的裝飾器,那我們如何實現的,看**。

def decorator(method):

def decorat(func):

def new_func(*args,**kwargs):

if method == "get":

print('進行get裝飾')

return func(*args,**kwargs)

elif method == "post":

print('進行post裝飾')

return func(*args,**kwargs)

else:

method_copy = method

print('進行其他型別裝飾'+method_copy[0:1])

return func(*args,**kwargs)

return new_func

return decorator

@decorator(method='get')

def func():

pass

"""這樣就能根據不同的引數進行不同的裝飾啦,但是有一點需要注意,如果需要對傳入的型參進行更改,

那麼就需要從新再新建乙個變數來繼承傳入型參的值,在此裝飾器中就是method_copy

"""

睡了,睡了,雯雯的腳還受傷了,難受。

python基礎 裝飾器

裝飾器本質就是函式,功能是為其他函式新增附加功能。原則 不修改被修飾函式的源 不修改被修飾函式的呼叫方式 裝飾器的知識儲備 裝飾器 高階函式 函式巢狀 閉包 import time 定義乙個裝飾器計算函式執行時間 def timer func start time time.time res fun...

python基礎 裝飾器

裝飾器形成的過程 最簡單的裝飾器 有返回值的 有乙個引數 萬能引數 裝飾器的作用 原則 開放封閉原則 語法糖 裝飾器的固定模式 import time print time.time 獲取當前時間 time.sleep 10 讓程式在執行到這個位置的時候停一會兒 def timmer f 裝飾器函式...

Python基礎 裝飾器

裝飾器是程式開發中經常會用到的乙個功能,程式開發的基礎知識,用好了裝飾器,開發效率如虎添翼,所以這也是python面試中必問的問題,但對於好多初次接觸這個知識的人來講,這個功能有點繞,這個都不會,別跟人家說你會python,看了下面的文章,保證你學會裝飾器。裝飾器 decorator 首先我們需要知...