• 装饰器


    装饰器

    装饰器是闭包的一个应用,我们需要理解一些概念

    1、闭包的概念:在一个外函数中定义了一内函数,内函数里运用了外函数的非全局变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。

    2、开放封闭原则(面向对象原则核心):软件实体应该是可拓展的,而不可修改的,也就是说对拓展是开放的,对修改是封闭的

    实现一个装饰器:

    一、#登录场景(无参装饰)

    username = 'name'
    pwd = '123456'


    def login(func):
    def fun():
    user = input('请输入用户名')
    pd = input('请输入密码')
    if username == user and pwd == pd:
    func()
    else:
    print('登录失败')

    return fun


    @login
    def home():
    print('HOME')


    home()

    二、带参装饰

    import time


    def wait_time(func):
    def count(*args, **kwargs):
    start_time = time.time()
    func(*args, **kwargs)
    end_time = time.time()
    print('函数运行时间{:.5f}'.format(end_time - start_time))

    return count


    @wait_time
    def add(a, b):
    time.sleep(3)
    print(a + b)


    add(54, 56)


    @wait_time
    def print_a():
    time.sleep(2)
    print('aaaaaaaa')


    print_a()
  • 相关阅读:
    office2007快捷键
    To be solved
    网址Favorites
    C#网址
    developer's website
    Visual Studio快捷键
    如何跟进大客户?
    这些话让我们意识到流程的重要性
    恭祝大家情人节快乐!
    知已知彼,大客户管理10策
  • 原文地址:https://www.cnblogs.com/yyjiangnan/p/12381557.html
Copyright © 2020-2023  润新知