Why does my code execute like this? I want to break loop when user inputs “Q”, but it stops only when I input “Q” 2 times. Sometimes it doesn’t even stop after 2 “Q”s. It’s purely random.
code
import json
class Kasa:
def __init__(self):
self._running = True
while self._running:
print(self._running)
try:
with open('save.json') as json_file:
DATA = json.load(json_file)
CHOICE = input()
self._running = self.handleEvent(CHOICE)
except IOError:
CHOICE = input()
self._running = self.handleEvent(CHOICE)
def handleEvent(self, event):
if event == 'C':
pass
elif event == 'Q':
return False
else:
return True
if __name__ == "__main__":
Kasa().__init__()
exec output
>>>python file.py True True True True True Q True True True Q #script stopped executing here
Advertisement
Answer
No need to explicitly call init, calling Kasa() class will automatically call init
if __name__ == "__main__":
Kasa()
I would rather suggest to write the logic outside init in a seperate method