Python中return和yield的区别,面试官不讲武德

简介: Python中return和yield的区别,面试官不讲武德

示例代码如下:

class TestYield:
def gen_iterator(self):
result_list = []
for j in range(3):
print(f"gen_iterator-{j}")
result_list.append(j)

return在循环的外部,待变量完全生成后一次性返回

return result_list
def call_gen_iterator(self):

执行下边这句后result_list直接是完成的结果[0,1,2]

result_list = self.gen_iterator()
for i in result_list:
print(f"call_gen_iterator-{i}")
if name == “main”:
obj = TestYield()
obj.call_gen_iterator()

执行结果如下,可以看到一次性执行完下层函数,生成完整的迭代器类型返回值result_list,一次性返回给上层函数:

2 yield版本

示例代码如下:

‘’’

遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939

寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!

‘’’
class TestYield:
def gen_iterator(self):
for j in range(3):
print(f"do_something-{j}")

yield在for循环内部

yield j

def call_gen_iterator(self):

yield并不是直接返回[0,1,2],执行下边这句后result_list什么值都没有

result_list = self.gen_iterator()

i每请求一个数据,才会触发gen_iterator生成一个数据

for i in result_list:
print(f"call_gen_iterator-{i}")
if name == “main”:
obj = TestYield()

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、面试宝典

简历模板


相关文章
|
4天前
|
Java Python
Python2.x 与 3​​.x 版本区别
Python2.x 与 3​​.x 版本区别
|
5天前
|
Java
Java基础7-一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别(二)
Java基础7-一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别(二)
11 0
|
5天前
|
设计模式 Java 内存技术
Java基础7-一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别(一)
Java基础7-一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别(一)
14 0
|
10天前
|
消息中间件 存储 缓存
面试题--HashMap和TreeMap的区别和应用场景有啥区别?
然后底层调用key的hashCode()方法得出hash值; 过哈希表哈希算法,将hash值转换成数组的下标(注1),下标位置上如果没有任何元素,就把Node添加到这个位置上。如果说下标对应的位置上有值。此时,就会拿着key和链表上每个节点的key进行equal。如果所有的equals方法返回都是false,那么这个新的节点将被添加到链表的末尾。如其中有一个equals返回了true,那么这个节点的value将会被覆盖,如果最终长度大于8就会转成红黑树,红黑树插入;
14 3
Python中strip()、lstrip()和rstrip()方法的区别与用法详解
在Python中,字符串是一种常见的数据类型,而处理字符串时,经常会用到 strip()、lstrip() 和 rstrip() 这几个方法。它们都用于删除字符串开头和/或结尾的指定字符或字符集合,但在具体使用时有一些区别。
|
19天前
|
程序员 开发者 Python
Python2.x与 3.x 版本区别
Python2.x与 3.x 版本区别
|
22天前
|
人工智能 Java 开发者
Python与Java:两大编程语言的联系与区别
Python与Java:两大编程语言的联系与区别
|
25天前
|
存储 安全 Java
java面试基础 -- ArrayList 和 LinkedList有什么区别, ArrayList和Vector呢?
java面试基础 -- ArrayList 和 LinkedList有什么区别, ArrayList和Vector呢?
30 0
|
29天前
|
SQL 分布式计算 前端开发
10个常见的python面试问题_python面试常见问题
10个常见的python面试问题_python面试常见问题
|
29天前
|
存储 数据可视化 算法
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库
最新Python-Matplotlib可视化(9)——精通更多实用图形的绘制,2024年最新小米面试题库