다음 기능은 RackSpace 서버가 구축 될 때까지 대기합니다. 그 후 서버 객체를 반환합니다 :파이썬 while 루프가 종료되지 않는 이유는 무엇입니까?
def _wait_for_server(cloud_server, server):
while server.status != 'ACTIVE':
sleep(30)
s = cloud_server.servers.get(server.id)
print '%s: %s (%s%%)' % (s.id, s.status, s.progress)
return server
임대해야 할 일은 무엇입니까? 대신 서버 상태가 Active
에 도달하면 while 루프가 계속 실행되고 종료되지 않습니다. 왜 이런 일이 일어나는 걸까요?
7cbadf1b-1090-40d5-9437-9869ca392b5a: BUILD (10%)
7cbadf1b-1090-40d5-9437-9869ca392b5a: BUILD (10%)
7cbadf1b-1090-40d5-9437-9869ca392b5a: BUILD (10%)
7cbadf1b-1090-40d5-9437-9869ca392b5a: BUILD (10%)
7cbadf1b-1090-40d5-9437-9869ca392b5a: BUILD (40%)
7cbadf1b-1090-40d5-9437-9869ca392b5a: BUILD (40%)
7cbadf1b-1090-40d5-9437-9869ca392b5a: BUILD (40%)
7cbadf1b-1090-40d5-9437-9869ca392b5a: BUILD (40%)
7cbadf1b-1090-40d5-9437-9869ca392b5a: BUILD (70%)
7cbadf1b-1090-40d5-9437-9869ca392b5a: BUILD (80%)
7cbadf1b-1090-40d5-9437-9869ca392b5a: ACTIVE (100%)
7cbadf1b-1090-40d5-9437-9869ca392b5a: ACTIVE (100%)
7cbadf1b-1090-40d5-9437-9869ca392b5a: ACTIVE (100%)
... runs until the end of time or my laptop battery runs out
당신은'server.status'를 검사하지만, while 루프 안에서's' ('server'가 아닙니다)를 업데이트하기 때문에. – dano
댐 !!!!!!!!!!!!! 그런 학교 소년 오류! – Prometheus
@Sputnik 당신은 [고무 오리] (http://blog.codinghorror.com/rubber-duck-problem-solving/)를 얻어야합니다! – jonrsharpe