本篇文章給大家分享的是有關(guān)Python中的裝飾器 Decorators的使用方法,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
縉云ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
python的五大特點(diǎn):
1.簡(jiǎn)單易學(xué),開發(fā)程序時(shí),專注的是解決問題,而不是搞明白語言本身。
2.面向?qū)ο?,與其他主要的語言如C++和Java相比, Python以一種非常強(qiáng)大又簡(jiǎn)單的方式實(shí)現(xiàn)面向?qū)ο缶幊獭?/p>
3.可移植性,Python程序無需修改就可以在各種平臺(tái)上運(yùn)行。
4.解釋性,Python語言寫的程序不需要編譯成二進(jìn)制代碼,可以直接從源代碼運(yùn)行程序。
5.開源,Python是 FLOSS(自由/開放源碼軟件)之一。
def my_logging(func):
def wrapper():
print('logging - {} is running'.format(func.__name__))
func() # run func() Equivalent run f1()
return wrapper
def bold(func):
def wrapper():
print("")
func()
print("")
return wrapper
def italic(func):
def wrapper():
print("")
func()
print("")
return wrapper
@my_logging
@bold
@italic
def f1():
print("f1")
f1()
其實(shí)上面這段 code 也相當(dāng)這樣的
def my_logging(func):
def wrapper():
print('logging - {} is running'.format(func.__name__))
func() # run func() Equivalent run f1()
return wrapper
def bold(func):
def wrapper():
print("")
func()
print("")
return wrapper
def italic(func):
def wrapper():
print("")
func()
print("")
return wrapper
def f1():
print("f1")
f1 = my_logging(bold(italic(f1)))
f1()
這邊只需要稍微注意一下執(zhí)行的順序????,剛剛的 f1() 是沒有帶入?yún)?shù)的,今天假如我希望帶入?yún)?shù)呢?
def my_logging(func):
def wrapper(*args, **kwargs):
print('logging - {} is running'.format(func.__name__))
func(*args, **kwargs)
return wrapper
@my_logging
def f1(*args, **kwargs):
print("f1")
for thing in args:
print('hello {}'.format(thing))
for name, value in kwargs.items():
print('{0} = {1}'.format(name, value))
f1('twtrubiks', apple='fruit', cabbage='vegetable')
使用 *args **kwargs 這樣寫的話,不管 f1() 帶入什麼參數(shù)都不用擔(dān)心????。裝飾器還有更大的彈性,像是今天如果我希望將裝飾器帶入?yún)?shù)。
def my_logging(level):
def decorator(func):
def wrapper(*args, **kwargs):
if level == "1":
print('level {} logging - {} is running'.format(level, func.__name__))
elif level == "2":
print('level {} logging - {} is running'.format(level, func.__name__))
func(*args, **kwargs)
return wrapper
return decorator
@my_logging(level="1")
def f1(*args, **kwargs):
print("f1")
for thing in args:
print('hello {}'.format(thing))
for name, value in kwargs.items():
print('{0} = {1}'.format(name, value))
f1('twtrubiks', apple='fruit', cabbage='vegetable')
這邊簡(jiǎn)單說明,就是為了要將裝飾器帶入?yún)?shù),我們必須再包一層。
以上就是Python中的裝飾器 Decorators的使用方法,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。