欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python 裝飾器位置

錢衛國2年前8瀏覽0評論

Python中的裝飾器是一種很有用的函數修飾工具,它可以動態地改變函數的行為。但是,裝飾器在函數定義前、函數定義后或函數中定義,具體運行的時候會有所不同。

# 裝飾器定義在函數定義前
def deco(func):
def wrapper(*args, **kwargs):
print("before exec")
res = func(*args, **kwargs)
print("after exec")
return res
return wrapper
@deco
def my_func():
print("executing my_func()")
my_func()
# 輸出:
# before exec
# executing my_func()
# after exec
# 裝飾器定義在函數定義后
@deco
def my_func():
print("executing my_func()")
my_func()
# 輸出:
# before exec
# executing my_func()
# after exec
def my_func():
@deco
def wrapper():
print("executing my_func()")
return wrapper
my_func()()
# 輸出:
# before exec
# executing my_func()
# after exec

當裝飾器定義在函數定義前或后時,執行順序與定義順序相同。裝飾器定義在函數中時,需要記得返回內部函數。實際中,裝飾器的位置要根據實際需求而定。