当'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 2012-03-08 16:52:32
正确,有人可以澄清为什么它不会在'杀死'中断吗? – mark 2012-03-08 17:04:57
@mark为什么它应该在'kill'后停止?没有突破声明。所以它执行下面的其他函数'kill'。但是'while'的下一次迭代不会因为'self.nect == True'条件不满足而去。 – ovgolovin 2012-03-08 17:08:02