python如何创建子程序_Python中生成器与子程序的并发控制
楚沐风
原创
关注
0点赞·572人阅读
给出示例代码:def main(init):
def report(x):
print x
bigop(init, report)
不过,我不认为这就是你要找的。{{cd2>可能想把数据输入到^ cd2>中。在
您可以通过扭转局面来实现这一点,而不是view是一个驱动另一个生成器的生成器,它是由外部调用程序在其上调用send来驱动的生成器。例如:
^{pr2}$
但你说过view不能改变。当然,您可以编写一个viewdriver,它是一个新的对象,只要send它就是一个新对象。或者,更简单地说,只需反复调用view([data])并让它在单个对象上迭代。在
不管怎样,我不明白你怎么指望这会有什么帮助。bigop不是一个协同程序,您不能将其转换为一个。鉴于此,没有办法强迫它与其他协同程序合作共享。在
如果您想同时交错处理和报告,您必须使用线程(或进程)。事实上,“在BIGOP继续之前,报表必须在每一步都完成”已经是您需求的一部分,这意味着您无论如何也不能安全地执行任何并发 *** 作,所以我不确定您在寻找什么。在
如果您只想在没有并发的情况下交错处理和报告,或者定期挂接到bigop,或者其他类似的事情,那么您可以使用协程来实现这一点,但是它将具有与使用子例程完全相同的效果,上面的两个示例几乎相当。所以,你无缘无故地增加了复杂性。在
(如果bigop是I/O绑定的,那么可以使用greenlets,并使用monkeypatch对I/O *** 作进行异步化,就像gevent和{}一样。但如果是CPU限制的,这样做没有任何好处。)
一、主体不同
1、类:是面向对象程序设计实现信息封装的基础。
2、函数:是指一段在一起的、可以做某一件事儿的程序。也叫做子程序、(OOP中)方法。
二、特点不同
1、类:是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组 *** 作数据或传递消息的函数。类的实例称为对象。
2、函数:分为全局函数、全局静态函数;在类中还可以定义构造函数、析构函数、拷贝构造函数、成员函数、友元函数、运算符重载函数、内联函数等。
三、规则不同
1、类:实质是一种引用数据类型,类似于byte、short、int(char)、long、float、double等基本数据类型,不同的是它是一种复杂的数据类型。
2、函数:函数必须声明后才可以被调用。调用格式为:函数名(实参)调用时函数名后的小括号中的实参必须和声明函数时的函数括号中的形参个数相同。
参考资料来源:百度百科-函数
参考资料来源:百度百科-类
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)