次のコードは、ループの各ループで関数を呼び出しfor
ます。これらの関数のいずれかが呼び出される前にループが終了することが保証されていますか?
def testFunc():
print('this is a test')
for i in range(5):
print('test')
testFunc()
print("Have any test funcs been called")
いいえの場合、testFunc
sは実際にいつ呼び出されますか?(マルチプロセッシング/スレッド化が行われていない場合は、関数が完了したら想定しています)
testFunc
ブロッキングコードがある場合for
、関数が戻るか実行されるまで一時停止しますか?
これはそこで起こっている実際のことです
あなたのコード:
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
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加