课堂练习-python 装饰器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了课堂练习-python 装饰器相关的知识,希望对你有一定的参考价值。

#无传参版
import time
def timer(func):# 函数test当做了一个变量传给了func
    def conut():
        start_time=time.time()
        func()
        stop_time=time.time()
        print(the func run time is %s%(stop_time-start_time))
    return conut

# @timer  # 相当于test=timer(test)
def test():
    time.sleep(3)
    print(in the test)

test=timer(test)
test()

#有传参版
import time
def timer(func):# 函数test当做了一个变量传给了func
    def conut(*args,**kwargs):
        start_time=time.time()
        func(*args,**kwargs)
        stop_time=time.time()
        print(the func run time is %s%(stop_time-start_time))
    return conut

@timer  # 相当于test=timer(test)
def test(name,age):
    time.sleep(3)
    print(%s is %s%(name,age))

# test=timer(test)
test(bruce,22)

#高级版

import time
name,password=bruce,123456

def auth(auth_type):
    def out_wrapper(func):
        def wrapper(*args,**kwargs):
            if auth_type == local:
                username=input(User:).strip()
                passwd=input(Passwd:).strip()
                if username == name and passwd == password:
                    print(\033[32;1m认证成功!\033[32;0m)
                    ret = func(*args,**kwargs)
                    return ret
                else:
                    exit()
            elif auth_type == ldap:
                print(不会!)
        return wrapper
    return out_wrapper

@auth(auth_type=ldap)
def index():
    print(welcom to index page)

@auth(auth_type=local)
def home():
    print(welcom to home page)
    return home

index()
home()

 

以上是关于课堂练习-python 装饰器的主要内容,如果未能解决你的问题,请参考以下文章

python3练习-装饰器

Python小程序练习二之装饰器小例子

python课堂整理22----装饰器进阶

Python练习-装饰器版-为什么我的用户总被锁定

Python-23_装饰器-04_练习---无参装饰器有参装饰器

关于装饰器的两个小练习