首页 > 其他分享 >什么是迭代器,生成器,装饰器

什么是迭代器,生成器,装饰器

时间:2023-08-09 15:34:28浏览次数:32  
标签:__ 迭代 对象 生成器 django 信号 装饰

1 什么是迭代器,生成器,装饰器

迭代器

迭代器(Iterator):
是一种用于遍历(迭代)集合或序列数据的对象,它提供了一种统一的方式来逐个访问集合中的元素,而无需了解集合内部的具体结构。迭代器允许你逐步处理大量数据,而不必一次性加载所有数据到内存中。

迭代:
一种不依赖于索引取值的方式,我们不需要关注它的位置,只要能够一个个取值,它就称之为迭代

在 Python 中,迭代器是一个具有两个基本方法的对象:

iter() 方法: 返回迭代器对象本身。这个方法通常在对象的类中实现,它用于初始化迭代器的状态,并返回一个可迭代的对象。

next() 方法: 返回集合中的下一个值。这个方法在每次迭代时被调用,返回序列中的一个元素。当没有更多元素可迭代时,会引发 StopIteration 异常。

可迭代对象:
可以迭代的(for,next取值的)python中的对象称之为可迭代对象
字典,列表,字符串,元组,集合,文件对象
迭代器
可迭代对象调用__iter__,就得到了迭代器,迭代器有__iter__和__next__方法
自定义迭代器:
写个类,类中重写__iter__和__next__方法,这个类的对象就是迭代器

生成器(Generator)

是 Python 编程语言中的一种特殊类型的可迭代对象。生成器允许你按需逐步产生值,而不是一次性将所有值存储在内存中。这在处理大量数据或无限序列时非常有用,可以提高性能和节省内存。
生成器:生成器本质就是迭代器,
函数中只要有yiele关键字,这个函数被调用 函数(),它就变成了生成器
生成器表达式,也可以做出生成器 (i+1 for i in [1,2,3])
比如有一堆数据,要放到列表中,但 你没放,而放到了生成器中
for i in range(10)

装饰器

本身是一个闭包函数,作用是在不改变 被装饰对象源代码和调用方式的基础上,为它加入新功能
flask的路由就是基于装饰器
django的信号也可以用装饰器方式注册
django中局部取出csrf认证
为接口记录访问日志
request

2 django的信号用过吗?如何用,干过什么

django提供的一种通知机制,他是设计模式观察者模式(发布订阅),在发生某种变化的时候,通知某个函数执行
内置信号:如果是内置信号用起来简单,只需要写个函数,跟内置信号绑定,当信号被触发,函数就会执行
	-绑定信号,在django中有两种方式
    	@receiver
        connect连接
自定义信号:就比内置信号多了两步:1 定义信号 2 触发信号   信号.send

3 Dockerfile用过吗?常永命令有哪些

-是一些列脚本组成的文件,用来构建镜像
-FROM
-RUN
-ENV
-WORKDIE

标签:__,迭代,对象,生成器,django,信号,装饰
From: https://www.cnblogs.com/yuezongke/p/17616943.html

相关文章

  • 可迭代对象,迭代器对象,for循环本质
    可迭代对象#可迭代对象#数据对象有__iter__方法的都称为可迭代对象1.内置方法通过加点的方式可以调用的方法2.__iter__读作:双下iter对象3.不可迭代对象:int,float4.可迭代对象:str,list,dict,tuple,set,f.__iter__文件对象5.可迭代的含义"""迭代:每一次更新......
  • 迭代器模式
    我们登上并非我们选择的舞台,演出并非自己选择的剧本。——爱比荷泰**迭代器模式:**提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明的访......
  • Python 装饰器
    装饰器的基本语法装饰器本质上就是“定义一个闭包并用语法糖@简练地调用该闭包”,从而实现把一个方法对象当做参数,传入到另一个方法中,然后返回一个增强功能的新方法对象。在Python中允许在一个方法中嵌套另一个方法,这种特殊的机制就叫做「闭包」,这个内部方法可以保留外部方法......
  • 【C语言】递归和迭代(斐波那契数列问题)
    1.递归算法一般用于解决三类问题:问题解的定义是按递归定义的(如阶乘)。问题解法由回溯算法实现(如数字排列组合问题)。数据的结构形式是按递归定义的(树的遍历,图的搜索、嵌套列表)。2.什么是递归呢?......
  • quarkus依赖注入之八:装饰器(Decorator)
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本篇是《quarkus依赖注入》系列的第八篇,目标是掌握quarkus实现的一个CDI特性:装饰器(Decorator)提到装饰器,熟悉设计模式的读者应该会想到装饰器模式,个人觉得下面这......
  • 浙江休闲公园装饰镜面不锈钢七彩狗雕塑厂家报价
    浙江休闲公园装饰镜面不锈钢七彩狗雕塑厂家报价不锈钢七彩狗雕塑 让形说话,让形表达情感!这么可爱的造型雕塑,不管大人还是小朋友都会很喜欢。不锈钢七彩狗雕塑 可用于公园、商场、广场、当成摆件座椅,时尚又实用,是美化空间的好帮手!......
  • STL迭代器适配器reverse_iterator剖析 #C++
    迭代器适配器(iteratoradapters)迭代器适配器是迭代器应用于迭代器的产物,包括insertiterator,reverseiterator和iostreamiterator。迭代器适配器本质是对容器或一般迭代器进行封装,以使其更加符合需求。reverse_iterator概述reverse_iterator可以将一般迭代器的行进方向进......
  • python中的装饰器
    python中的装饰器(decorator)一般采用语法糖的形式,是一种语法格式。比如:@classmethod,@staticmethod,@property,@xxx.setter,@wraps(),@func_name等都是python中的装饰器。装饰器,装饰的对象是函数或者方法。各种装饰器的作用都是一样的:改变被装饰函数或者方法的功能,性质。一、装饰器......
  • 装饰者模式
    装饰者模式**装饰者模式:**动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。*设计原则:*类应该对扩展开放,对修改关闭继承属于扩展形式之一,但不见得是达到弹性设计的最佳方式。在我们的设计中,应该允许行为可以被扩展,而无须修改现有的代码。组合和......
  • 【Java循环】:探索迭代的世界
    循环是编程中的重要概念,它允许我们重复执行特定的代码块,帮助我们简化复杂的任务和提高代码的效率。在Java中,循环有多种形式,包括for循环、while循环和do-while循环。本篇博客将深入探讨Java中的循环,以及如何使用它们来解决实际问题。1.for循环for循环是一种常用的循环结构,它允许......