Jessie.Y's Den

A blog for recoding life in pieces

Arvin.W, another owner.


WELCOME TO OUR WORLD

Generator in Python

​ 在Python中,带有yield关键字的函数被称之为generator(生成器)。何为yield,又何为generator呢?首先给出一个概念性的认识,后续给出相应的例子来进行阐述。

​ 一个带有yield关键字的函数就是一个generator,它是函数,但是又和普通函数不同;生成一个generator,形式上像是函数调用,但是它不会执行任何函数代码,直到对它进行next()或者send(None)调用才会开始执行。虽然执行流程和函数执行流程一样,但是,每当执行到一个yield语句,流程就会中断,并返回一个值(yield 后面的值);等到再次对它进行next()调用,将会从yield的下一个语句继续执行。整个过程像是在函数执行过程中被“中断”了多次,每次中断都会通过yield返回一个值。

最近的文章

大写数字转换成阿拉伯数据

​以下代码支持千亿以内的转换。# -*- coding: utf-8 -*-digits = {u'一':1, u'二':2, u'三':3, u'四':4, u'五':5, u'六':6, u'七':7,u'八':8, u'九':9, u'零':0}units = {u'十':10, u'百':10**2, u'千':10**3, u'万':10**4, u'亿':10**8}def main(inputs): output = 0 unit = 0 midput = ...…

继续阅读
更早的文章

umount异步机制

场景介绍 远程map一个块设备到机器上,并将这个设备挂在到某个挂载点,作为runc的rootfs使用 块设备上的文件系统为xfs 删除runc容器过程中,首先umount 挂载点,然后unmap这个块设备,这两个过程中在代码逻辑上是‘严格’顺序执行问题描述在umount文件系统的过程中,会大概率导致umount进程D住(处于Uninterruptible状态中),在dmesg看到的直接原因是:设备umap先于文件系统umount操作执行。但是在代码上,两个操作都是同步调用,即直到um...…

继续阅读