0

Python での定義の流れについて質問がありました。

def testCommandA () :
  waitForResult = testCommandB ()
  if result != '' :
     print 'yay'

testCommandB が何か (空の文字列だけでなく) を返すのを待つように waitForResult を作成する方法はありますか? testCommandB が何も生成しない (空の文字列) 場合があり、空の文字列を渡したくありませんが、waitForResult で文字列を取得するとすぐに testCommandA が実行されます。出来ますか?

前もって感謝します

4

2 に答える 2

3
# Start with an empty string so we run this next section at least once
result = ''
# Repeat this section until we get a non-empty string
while result == '':
    result = testCommandB()
print("result is: " + result)

testCommandB()ブロックしない場合、終了するまで CPU 使用率が 100% になることに注意してください。別のオプションは、チェック間のスリープです。このバージョンでは、10 分の 1 秒ごとにチェックします。

import time

result = ''
while result == '':
    time.sleep(0.1)
    result = testCommandB()
print("result is: " + result)
于 2012-07-17T15:42:44.780 に答える
1

testCommandB空の文字列でないところからのみ戻ります。つまり、testCommandB意味のある値になるまでブロックします。

于 2012-07-17T15:42:33.010 に答える