关于装饰器的那些事儿哈哈哈哈

到底什么是装饰器呢?

在不改变被装饰对象的源代码和调用方式的情况下被装饰对象添加新的的功能

装饰器并不是个新的技术
利用函数的参数、名称空间、函数名的用法、以及闭包函数的结合的结果

对修改封闭 对扩展开放

def login_auth(func_name):
    def inner(*args, **kwargs):
        username = input('username>>>:').strip()
        password = input('password>>>:').strip()
        if username == 'mire' and password == '123':
            res = func_name(*args, **kwargs)
            return res
        else:
            print('wrong username or password')

    return inner


@login_auth
def register():
    print('注册功能')


register()


@login_auth
def login():
    print('登录功能')


@login_auth
def transfer():
    print('转账功能')

image

这就是所谓的装饰器(也就是一个工具)提前写好,
需要的时候@一下就过来执行任务,
不调用就没事,这样一装饰之后不用反反复复的造轮子,
大大提升了程序员开发效率

第一次学习真的死活也搞不懂,甚至导致后面影响很多其他知识点的理解与掌握,其实装饰器不可怕,主要是因为知识点过于抽象以至于没有计算机基础的人或者开发经验一时半会儿理解不了,但是也不要太担心,只要把态度端正了,不懂就多对回顾多多复习总会理解的,这不我现在终于明白了嘛。所以还是那句话,功夫不负有心人!

posted @ 2023-03-28 16:57  阿丽米热  阅读(18)  评论(0编辑  收藏  举报
Title