• 叠加装饰器 迭代器


    叠加装饰器:

    ​ 在同一个被装饰对象中,添加多个装饰器,并执行

    @装饰1

    @装饰2

    @装饰3

    def 被装饰对象():

    ​ pass

    注意:装饰器在调用被装饰对象是才会添加的功能

    叠加装饰器:

    ​ -- 装饰器的顺序:由下到上

    ​ --执行的顺序:由下到上

    注意:无论inner中出现任何判断,最后都要返回“调用后的被装饰对象” func(*args, **kwargs)

    有参装饰器:

    ​ 本质上是在无参装饰器上套了一个外层函数

    ​ 无参装饰器可以引用外层函数的名字

    应用:

    	用户权限的认证
    

    迭代器

    迭代器:

    ​ 迭代取值的工具

    迭代:

    ​ 迭代指的是重复迭代,每一次迭代都是基于上一次的结果而产生

    迭代器:

    ​ 迭代器指的是迭代取值的工具,它可以迭代取值

    • 如果想要知道python中迭代器是什么,首先需要先知道什么是可迭代对象?

    可迭代对象:

    ​ 所有的序列类型:str(字符串)、list(列表)、tuple(元祖)、dict(字典)、set(集合)、f(文件)

    ​ 凡是内部有 __ iter__ () 方法的都是可迭代对象

    可迭代对象:

    通过可迭代对象 __ iter __ (),得到的返回值就是“迭代器对象”

    迭代器是迭代取值的工具,作用是迭代取值

    获取迭代器:

    list1 = [1,2,3]
    
    #调用__iter _ ()会得到一个返回值,该返回值就是一个迭代器对象
    

    ​ iter_list = list1.__iter _()

    ---如何迭代取值:

    迭代器对象 __ next__ () 每执行一次,都会从迭代器对象中取出一个值

    注意:取到最后一个值后,若值没有,则会报错

    while True
    	try:
            print(iter_list._next_())
        except StopIteration:
            break
    

    for 循环的原理:

    in : 会将可迭代对象自动调用_ iter _ ()变成迭代器对象

    for i in 可迭代对象:

    ​ #会自动帮你调用_ next_

    print(i) : for循环内部会有一个捕获异常机制,一旦遇到异常就会停止取值

    迭代器的优缺点:

    ​ 优点:提供一种不依赖索引取值的方式

    ​ 节省内存空间

    ​ 缺点:指定取值麻烦,每次取值都要从第一个开始查找

    ​ 不能通过len计算长度

  • 相关阅读:
    python学习-类属性和实例属性
    python学习-名字管理
    phalcon安装-遇坑php-config is not installed 解决方法
    利用scp 远程上传下载文件/文件夹
    linux tar打包
    ELK logstash 启动慢的解决方法
    shell脚本学习
    ELK日志系统:Filebeat使用及Kibana如何设置登录认证(转)
    elastic5.4安装错误解决
    CentOS 6、7 安装 Golang
  • 原文地址:https://www.cnblogs.com/127-2933/p/11867940.html
Copyright © 2020-2023  润新知