# 使用裝飾器對有返回值的函式進行裝飾
# 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 飯前洗洗手 呼叫基本...