zoukankan      html  css  js  c++  java
  • python装饰器学习笔记

    定义:本质上就是个函数,(装饰器其他函数)就是为了给其他函数添加附加功能

    原则:1.不能修改被装饰的函数的源代码

               2.不能修改被装饰的函数的调用方式

     #-*-coding:utf-8-*-
    1
    import time 2 def timer(hello): 3 def func(*args,**kwargs): #函数传参,不限个数。 4 start = time.time() 5 hello(*args,**kwargs) #函数传参,不限个数。 6 end = time.time() 7 print("运行时间:%s"%(end - start)) 8 return func 9 @timer 10 def hello(): 11 time.sleep(2) 12 print("nihao")
    13 hello()

    注:装饰器得写在被装饰函数的上面。

     小实验:密码验证

    #-*-coding:utf-8-*-
    import
    time
    user = {                           #存储用户名和密码
        "luozeng":'123',
        "xuemanfei":'456',
        "xutian":'789'
    }
    
    def yanzheng(hello):
        def func(*args,**kwargs):
            start = time.time()
            username = input("请输入用户:").strip()     #用户输入
            password = input("请输入密码:").strip()
            if username in user and password == user[username]:        #用户名和密码验证
                print("登陆成功")
                hello(*args,**kwargs)
            else:
                exit("用户名或密码错误!")
            end = time.time()
            print("运行时间:%s"%(end - start))
        return func
    @yanzheng
    def hello():
        print("你好!")
    hello()
  • 相关阅读:
    数列分块入门九题(一):LOJ6277~6279
    Luogu P4211 [LNOI2014]LCA
    Luogu P2279 [HNOI2003]消防局的设立
    Luogu P3177 [HAOI2015]树上染色
    51Nod 1677 treecnt
    CYJian的水题大赛
    51Nod 1299 监狱逃离
    51Nod 1705 七星剑
    51Nod 1443 路径和树
    51Nod 1815 调查任务
  • 原文地址:https://www.cnblogs.com/luozeng/p/7239582.html
Copyright © 2011-2022 走看看