当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"
答案 0 :(得分:1)
Python总是按顺序执行函数,除非您使用线程,进程或库,如stackless python或celery(但通常这些库只是进程和/或线程之上的扩展)。