2017-02-01 1 views
0

나는 stop 메소드를 호출하여 완전히 종료 할 수없는 파이썬 클래스가 있습니다. 나는 가능한 한 빨리 중지 요청을 잡을 수 있도록 클래스 루프를 깨끗하게 종료하는 파이썬

나는 루프에서 약간의 지연이 : 나는 정지() 메서드를 호출 할 때까지

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) 

루프가 정상적으로 실행과 함께 충돌 :

NameError: name 'sleep' is not defined 

어떻게하면 정상적으로 종료 할 수 있습니까 ??

+1

더 파이썬이라는 내장'수면()'이 없다, 그것은'time.sleep입니다()'(그리고'import time'을 잊지 말것) – cdarke

+1

덧붙여서, 당신의 예제는'stop'을 호출하지 않습니다. – BrenBarn

+0

고마워,하지만 시간에서 잠을 가져 왔어, 이건 코드 조각 일 뿐이야, stop()을 호출 할 때까지 모든 것이 작동한다. – crankshaft

답변

1

sleeptime 모듈에 속합니다. 그러니 그냥 상단에 추가 :

from time import sleep 

또는

import time 

후 수면 전화 :

time.sleep(1) 
+0

네, 동의하지 않습니다. 그렇지 않으면 오류가 발생하지 않습니다. NameError : name 'sleep'not defined' –

관련 문제