2017-02-01 4 views
0

私はpythonクラスを持っていますが、私は完全に終了メソッドを呼び出すことによって終了できません。Pythonはきれいにクラスループを終了します

私はできるだけ早く停止要求をキャッチすることができますように、私は、ループ内の小さな遅延を有する:

from time import sleep 
more imports... 

class XXX: 
    def __init__(): 
     self.enable = True 
     more code... 

    def stop(self): 
     self.enable = False 

    def loop(self): 
     do something.... 

    def run(self): 
     while self.enable:  
     self.loop() 
     for i in range(15): 
      if(not self.enable): 
      break 
      else: 
      sleep(1) 

私がstop()メソッドを呼び出し、それがでクラッシュするまでループが正常に動作:

NameError: name 'sleep' is not defined 

これをきれいに終了できますか?

+1

を、それは 'time.sleepです() '(そして、' import time'を忘れることはありません) – cdarke

+1

ちなみに、あなたのサンプルは 'stop'を呼び出すことはありません。 – BrenBarn

+0

ありがとう、私は時間から睡眠をインポートしました。これはコードのスニペットです。stop()を呼び出すまではすべて動作します。 – crankshaft

答えて

1

sleepは、timeモジュールに属します。だから一番上に追加します。

from time import sleep 

または

import time 

をして、睡眠を呼び出す: `)`睡眠(と呼ばれる何Pythonの組み込みはありません

time.sleep(1) 
+0

ええ、私は間違ってインポートされているようですが、そうでなければエラーは 'NameError:name 'sleep' not not defined' –

関連する問題