python 通用裝飾器,帶有引數的裝飾器,

2022-08-21 23:36:11 字數 2414 閱讀 7318

# 使用裝飾器對有返回值的函式進行裝飾

# def func(functionname):

# print('---func-1----')

# def func_in():

# print("----func_in---1-")

# x = functionname() #儲存返回來的hahah

# print("----func_in---2-")

# return x

# print('---func-2----')

# return func_in

# @func

# def test():

# print("-----test-----")

# return "haha"

# ret = test()

# print("test return value is %s"%ret)

# ---func-1----

# ---func-2----

# ----func_in---1-

# -----test-----

# ----func_in---2-

# test return value is haha

# 使用通用裝飾器對函式進行裝飾

# def func(functionname):

# def func_in(*args,**kwatgs):

# print("記錄日誌")

# x = functionname(*args,**kwatgs)

# return x

# return func_in

# @func

# def test():

# print("-----test-----")

# return "haha"

# ret = test()

# print("test return value is %s"%ret)

# # -----test-----

# # test return value is haha

# @func

# def test2():

# print("----test2----")

# a = test2()

# print(a)

# # ----test2----

# # none

# @func

# def test3(a):

# print("-----test3----a=%d"%a)

# test3(10)

# -----test3----a=10

# 記錄日誌

# -----test-----

# test return value is haha

# 記錄日誌

# ----test2----

# none

# 記錄日誌

# -----test3----a=10

# 帶有引數的裝飾器、、

def func_arg(arg):

print(arg)

def func(functionname):

print('----func----')

def func_in():

print("--記錄日誌---")

print(arg)

if arg=='呵呵':

functionname()

functionname()

else:

functionname()

return func_in

return func

# 1.先執行func_arg('呵呵')函式,這個函式return的結果是func這個函式的引用

# 2.@func

# 3.使用@func對test進行裝飾

# 帶有引數的裝飾器,能夠起到在執行時,有不同的功能

@func_arg('呵呵')

def test():

print("-----test-----")

ret = test()

# 呵呵

# ----func----

# --記錄日誌---

# -----test-----

@func_arg("haha")

def test2():

print("--test2--")

test2()

# haha

# ----func----

# --記錄日誌---

# haha

# --test2--

Python 裝飾器,帶有引數的裝飾器

demo.py 裝飾器,帶引數的裝飾器 def set level level num def set func func def call func args,kwargs if level num 1 print 許可權級別1,驗證 elif level num 2 print 許可權級別2,驗...

python之帶有引數的裝飾器

乙個小demo def set level level num defset func func def call func args,kwargs if level num 1 print 許可權級別1,驗證 elif level num 2 print 許可權級別2,驗證 return func...

python 裝飾器 第七步 帶有引數的裝飾器

第七步 帶有引數的裝飾器 兩個基本函式用同乙個裝飾器裝飾 defouter arg print arg 這是裝飾器的 defkuozhan func print func func接收的依然是eat和chifan 未來的eat函式 defneweat 擴充套件功能1 print 飯前洗洗手 呼叫基本...