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

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
posted @ 2023-08-09 15:19  岳宗柯  阅读(32)  评论(0编辑  收藏  举报