功能执行

时间:2014-04-08 06:05:49

标签: python

当main函数等待其回调完成时,有三种情况。 我试图找到一个傻瓜"主要进行。有时我必须插入

  

time.sleep(0.1)

避免它发生。虽然它是一个技巧,但找到一个解决方案会很有趣。 一个问题:当一个调用的函数没有等到被调用的函数时,如何防止出现这种情况。

import time
import urllib2

class MyClass():
    def calcA(arg=None):
        print "\tstartA"
        for i in range(25000000):i+=1
        print '\t\tcompletedA'
    def calcB(arg=None):
        print "\tstartB"
        time.sleep(3)
        print '\t\tcompletedB'
    def calcC(arg=None):
        print "\tstartC"
        response = urllib2.urlopen('http://www.example.com/')
        html = response.read()
        print '\t\tcompletedC'

def runTestA():
    myInst=MyClass()
    print 'call1...'
    myInst.calcA()
    print 'call2...'
    myInst.calcB()
    print 'call3...'
    myInst.calcC()

runTestA()
print "happy end"  

1 个答案:

答案 0 :(得分:1)

Python总是按顺序执行函数,除非您使用线程,进程或库,如stackless python或celery(但通常这些库只是进程和/或线程之上的扩展)。