以下代码在for
循环的每个循环上调用一个函数。是否保证在调用任何这些函数之前循环完成?
def testFunc():
print('this is a test')
for i in range(5):
print('test')
testFunc()
print("Have any test funcs been called")
如果不是,testFunc
实际上什么时候被调用? (我假设一旦功能完成,如果没有多处理/线程正在进行)
如果testFunc
有阻止代码,它会暂停for
,直到函数返回或执行?
答案 0 :(得分:3)
这是实际发生的事情
您的代码:
def testFunc():
print('this is a test')
for i in range(5):
print('test')
testFunc()
print("Have any test funcs been called")
实际代码:
for i in range(5):
print('test')
print('this is a test')
print("Have any test funcs been called")
因此可确保在功能未完成时循环无法完成
所以如果函数有某种暂停函数,那么循环将等到函数完成
等待功能 进口时间
def testFunc():
for j in range(1,6):
time.sleep(1)
print("waiting for "+str(j) +" sec")
print('this is a test')
for i in range(5):
print('test')
testFunc()
print("Have any test funcs been called")
实际代码:
import time
for i in range(5):
print('test '+str(i))
for j in range(1,6):
time.sleep(1)
print("waiting for "+str(j) +" sec")
print("Have any test funcs been called")
<强>输出:强>
test 0
waiting for 1 sec
waiting for 2 sec
waiting for 3 sec
waiting for 4 sec
waiting for 5 sec
test 1
waiting for 1 sec
waiting for 2 sec
waiting for 3 sec
waiting for 4 sec
waiting for 5 sec
test 2
waiting for 1 sec
waiting for 2 sec
waiting for 3 sec
waiting for 4 sec
waiting for 5 sec
test 3
waiting for 1 sec
waiting for 2 sec
waiting for 3 sec
waiting for 4 sec
waiting for 5 sec
test 4
waiting for 1 sec
waiting for 2 sec
waiting for 3 sec
waiting for 4 sec
waiting for 5 sec
Have any test funcs been called