kill 함수에 의해 self.text가 ''로 설정된 경우 'while'은 '중단'되지 않습니다.While 루프 Python 클래스 속성
누군가가이 작업을 수행하거나 더 나은 방법을 제안하도록 도움을 줄 수 있습니까? 문자열이 '' 이되는 경우 종료하는 10 개 이상의 함수를 통해 문자열을 실행해야합니다. 각 함수 내부로 돌아 오는 것이 중복 된 것처럼 보입니다.
class Class(object):
def run(self, text):
self.text = text
while self.text:
self.nothing1()
self.kill()
self.nothing2()
return self.text # stop if all functions run
def nothing1(self):
print 'nothing1'
self.text = self.text
def kill(self):
print 'kill'
self.text = ''
def nothing2(self):
print 'nothing2'
self.text = self.text
C = Class()
C.run('some string')
명확한 설명 : 목표는 기능 중 하나가 문자열을 설정하면 한 번만 중지 순서에 많은 기능을 통해 문자열을 실행하는 것입니다 ""로, 나는 분명히, 그것을 어떻게 '동안'작업을 오해 나에게 가장 깨끗한 방법 같아.
이 코드는 실제로 첫 번째 반복을 중단합니다. – Marcin
맞습니다. 왜 누군가가 '살해'에서 깨지지 않는지 명확히 할 수 있습니까? – mark
@mark 왜'kill' 후에 멈추어야합니까? break 문은 없습니다. 따라서 나머지 함수는'kill'을 실행합니다. 그러나 'self.nect == True' 조건이 충족되지 않아'while '의 다음 반복은 실행되지 않습니다. – ovgolovin