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()
  • 相关阅读:
    O(1)时间求出栈内元素最小值
    静态查找>顺序、折半、分块查找
    字符串的最大重复数
    数据结构>栈
    排序>归并排序
    动态查找>二叉查找树(Binary Search Tree)
    数据结构>图的存储结构
    数据结构>图的连通性和最小生成树
    图片的轮廓
    数据结构>队列
  • 原文地址:https://www.cnblogs.com/luozeng/p/7239582.html
Copyright © 2011-2022 走看看