"""
通用装饰器的写法:
def wrapper(fn): # wrapper: 装饰器, fn: 目标函数
def inner(*args, **kwargs):
# 在目标函数执行之前……
ret = fn(*args, **kwargs) # 执行目标函数
# 在目标函数执行之后……
return ret
return inner
@wrapper
def target():
pass
target() # => inner()
一个函数可以被多个装饰器装饰
@wrapper1
@wrapper2
def target():
print('我是目标函数')
结果 wrapper1 wrapper2 TARGET wrapper2 wrapper1
"""
# 例子1
def guanjia(game):
# *,** 表示接收所有参数,打包成元组和字典
def inner(*args, **kwargs): # inner添加了参数,args元组,kwargs字典
print("打开外挂")
# *,** 表示把args元组和kwargs字典打散成位置参数以及关键字参数传递进去
game(*args, **kwargs)
print("关闭外挂")
return inner
@guanjia
def play_dnf(username, password):
print("开始玩dnf", username, password)
@guanjia
def play_lol(username, password, hero):
print("开始玩lol", username, password, hero)
play_dnf("
Python装饰器实例
于 2024-05-30 22:23:58 首次发布