• python装饰器


    装饰器本质是函数,为其他函数添加附加功能。

    原则:1、不能修改被装饰函数的源代码。2、不能修改被装饰函数的调用方式

    装饰器由高阶函数与嵌套函数组成。

    在以上函数中要增加一个新的功能:统计时间功能。那么就用到装饰器了,如下:

    以上执行结果就有了新增的功能。

    以下为一个扩展,以下为三个函数,执行两个函数用到的装饰器为一个,但是功能却不同

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    #Author: Tony Cabel
    import time
    user='cab'
    passw='123'
    
    def auth(type):
        def outside(func):
            def deco(*args,**kwargs):
                if type == 'local':
                    use=input('Username: ')
                    passwd=input('Password: ')
                    if user==use and passw==passwd:
                        print('Welcome %s'%use)
                        func(*args,**kwargs)
                    else:
                        exit("good bye")
                elif type == 'ldap':
                    print('Fuck off')
            return deco
        return outside
    
    def index():
        print('This is the index page')
    
    @auth('local')
    def home(*args):
        print('This is the home page')
    
    @auth(type='ldap')
    def bbs(*args):
        print('This is the bbs page')
    
    index()
    home()
    bbs()
    
    
  • 相关阅读:
    URAL 1658. Sum of Digits(DP)
    HDU 4433 locker(SPFA+DP)
    Vijos 1092 全排列
    POJ 1141 Brackets Sequence(DP)
    HDU 4597 Play Game
    HDU 1693 Eat the Trees(插头DP)
    USACO 5.4 Twofive(DP)
    USACO 5.5 Hidden Password(搜索+优化)
    USACO 5.5 Picture(周长并)
    USACO 5.4 Telecowmunication(最大流+枚举)
  • 原文地址:https://www.cnblogs.com/caibao666/p/6385365.html
Copyright © 2020-2023  润新知