weixin_41814838
蝉鸣后又雪
2019-03-30 01:36

请指教这个python 装饰器的实现原理是什么?我懵了,函数定义没写参数,竟然可以传参我有点害怕python了。

  • python

请看下面这个装饰器和普通函数,参数传递是怎么进行的或者保存在哪里吗?
希望前辈能解释一下,我没理解。

def new_func(func):
    def wrapped(username, passwd):
        if username == 'root' and passwd == '123456789':
            print('通过认证!')
            print('开始执行附加功能')
            return func()
        else:
            print('用户名或密码错误')
            return
    return wrapped

@new_func
def orign():
    print('开始执行函数')

if __name__ == '__main__':
    orign('root', '123456789')
#输出:
#通过认证!
#开始执行附加功能
#开始执行函数
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

2条回答