为了更好地控制运行的进程,可以使用win32process模块中的函数,如果想进一步控制进程,则可以使用ctype模块,直接调用kernel32.dll中的函数。
python回调函数的使用方法在计算机程序设计中,回调函数,或简称回调(Callback),是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序
有两种类型的回调函数:
那么,在python中如何实现回调函数呢,看代码:
代码如下:
def my_callback(input):
print "function my_callback was called with %s input" % (input,)
def caller(input, func):
func(input)
for i in range(5):
caller(i, my_callback)
子程序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限制的,这样做没有任何好处。)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)