# 需求 我要玩游戏, 需要一个管家完成开挂操作,并把游戏返回给我玩
# 装饰器本质上是一个闭包
# 作用:在不改变原有函数作用的情况下, 给函数增加新的功能, 可以在函数前后添加新功能. 但是不该原代码
# 在不改变函数的情况下, 在目标函数前后加上新的功能
# 登录的地方, 日志
def guanjia(game): # game 作为参数传递进函数guanjia()中, 就一直在函数内部
def inner(): # 定义函数inner
print("打开外挂")
game() # 参数如何进来内部函数的.....待理解啊, 为什么不需要global(这个不是参数是变量) ,
print("关闭外挂")
return inner
@guanjia # 相当于play_wz = guanjia(play_wz)
def play_wz():
print("我玩王者荣耀")
@guanjia # 相当于play_wz = guanjia(play_dt)
def play_dt():
print("我玩多塔")
# play_dt = guanjia(play_dt) # 函数名直接赋值
play_wz()