Python Yield versus Return
来源:互联网 发布:云朵播放器网络原因 编辑:程序博客网 时间:2024/05/22 06:52
As coders, we are familiar with how function calls work in Python or C. Whenever we call a function, the function gets a private namespace where its local variables are created.
Return
The return statement is where all the local variables are destroyed and the resulting value is given back (returned) to the caller. Should the same function be called some time later, the function will get a fresh new set of variables.Yield
But what if the local variables aren't thrown away when we exit a function? This implies that we can resume the function where we left off. This is where the concept of generators are introduced and the yield statement resumes where the function left off.Here's a simple example:
def generate_integers(N): for i in range(N): yield iSo here's what actually happens and we can observe this in our python (or ipython) shell:
In [1]: gen = generate_integers(3)In [2]: gen<generator object at 0x8117f90>In [3]: gen.next()0 In [4]: gen.next()1In [5]: gen.next()2So that's the difference between return and yield statements in Python. yield statement is what makes a function a generator function.
- Python Yield versus Return
- Python Yield versus Return
- python中yield和return对比
- Python中 print ,return,yield区别
- yield return
- yield return
- Yield Return
- yield return
- yield break 与 yield return
- Lua Versus Python
- C#中的yield return
- C#中的yield return
- yield return 学习
- u3d yield return
- 迭代器与yield return
- yield return用法
- C#中 yield return 与 yield break
- C#中 yield return 与 yield break
- 使用Aspose.Pdf处理现有的水印
- 小机器人5岁了!细数Android甜点史
- 多线程下载和断电续传
- 软件测试的科学
- C#日期处理
- Python Yield versus Return
- Makefile 之 wildcard用法:
- Xcode - Could not launch app - No such file or directory Error
- 查询有重复出现的列并且
- c#日期处理
- rJava包的安装和使用
- 使用Edraw打开加密的Word和Excel文件
- The power of Python's yield
- Java\jsp中文乱码问题汇总