python 关键字之yield、next
来源:互联网 发布:正在安装windows卡住 编辑:程序博客网 时间:2024/06/04 17:47
包含yield 关键字的函数成为一个迭代器,yield跟return的位置一样,只不过每次返回结果后,并没有退出,而是等待下一次迭代,下一次迭代开始后从yield后的语句开始执行,直到再次遇到yield,返回新一次的结果。可以看成是一个List, 但是和list的不同的是占用内存少。
def subimage_generator(img, stride, patch_size, nb_hr_images): for _ in range(nb_hr_images): for x in range(0, img_size - patch_size, stride): for y in range(0, img_size - patch_size, stride): subimage = img[x : x + patch_size, y : y + patch_size, :] yield subimage当你调用生成器函数的时候,如上例中的程序subimage_generator()并不会执行函数体内的代码,它仅仅只是返回生成器.函数体内的代码只有直到每次循环迭代(for)生成器的时候才会运行。函数第一次运行时,它会从函数开始处直到碰到yield时,就返回循环的第一个值,然后,交互的运行、返回,直到没有值返回为止。如果函数在运行但是并没有遇到yield,就认为该生成器是空,原因可能是循环终止,或者没有满足任何”if/else
访问subimage_generator() 可以借助python中的内置函数next
image_subsample_iterator = subimage_generator(img, stride, hr_patch_size, nb_hr_images)for j in range(stride_range): for k in range(stride_range): hr_samples[i, :, :, :] = next(image_subsample_iterator) i += 1
0 0
- python 关键字之yield、next
- python关键字之 yield
- Python:yield关键字以及next、send函数的作用
- Python的yield关键字
- Python的yield关键字
- Python关键字yield详解
- Python关键字yield详解
- Python关键字yield详解
- Python关键字yield详解
- Python生成器-yield关键字
- Python关键字yield详解
- Python中的yield关键字
- C#关键字之yield
- C#关键字之yield
- Python yield assert with关键字
- Python关键字yield的解释
- Python关键字yield的解释
- 如何理解Python关键字yield
- 第002天 功能分类
- JDBC-ODBC桥连接方式连接数据库
- 168. Excel Sheet Column Title
- 重拾算法之剑指Offier——树的子结构
- 青蛙跳上一个n级的台阶总共有多少种跳法
- python 关键字之yield、next
- hdu1408(水)
- Java中的栈上分配
- Arch Linux系统安装记录
- Java中hashCode的作用
- 有趣的蜂鸣器
- 生活随笔20170218
- Oralce数据库几种常用的备份方法
- oracle数据库查询Sql语句是否使用索引及常见的索引失效的情况