其他分享
首页 > 其他分享> > 装饰器

装饰器

作者:互联网

# 需求 我要玩游戏, 需要一个管家完成开挂操作,并把游戏返回给我玩
# 装饰器本质上是一个闭包
#    作用:在不改变原有函数作用的情况下, 给函数增加新的功能,  可以在函数前后添加新功能. 但是不该原代码
# 在不改变函数的情况下, 在目标函数前后加上新的功能
#  登录的地方, 日志
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()

 

标签:play,函数,guanjia,装饰,print,dt,wz
来源: https://www.cnblogs.com/acwecc/p/16367838.html