![](/img/trans.png)
[英]What to do from stopping the program from exiting in Python before if command
[英]Stopping a program from within a class in Python
假設我有一堂課:
class A:
def command(self, input):
if command == 'test1':
do something...
if command == 'quit':
#stop the program
在課外,我啟動了while循環:
if __name__ == "__main__"
lst = A()
while True:
command = input("Enter an option:")
lst.command(command)
我被卡在如果命令“退出”的時候,我需要停止整個程序的運行。 我現在面臨的問題是,由於我在類外啟動了while循環,因此如何“偽造”該循環以停止整個程序?
我正在尋找一個break方法,或者也許正在創建另一個函數來完全退出程序,但不是sys()
或quit()
方法,我猜我是不允許這樣做的。
在類中的任何地方使用sys.exit()
或類似的“核”函數通常是一個壞主意。 (因此,有while True
循環也是如此。)相反,讓該循環自然而優雅地中斷。
首先,您的command
在收到"quit"
時必須返回一個前哨。 標記的值取決於應用程序。 假設它是None
:
if command == 'quit':
return None
循環應觀察返回的值,並在返回前哨時中斷:
lst = A()
command = input("Enter an option:")
while command is not None:
lst.command(command)
command = input("Enter an option:")
您可以將quit命令移到command
功能之外。
class A:
def command(self, inp):
pass
if __name__ == "__main__":
lst = A()
while True:
cmd = input("Enter an option: ")
if cmd.lower() == 'quit':
break
else:
lst.command(cmd)
print('thanks bye!!')
最好將quit操作與其他應用程序命令脫鈎。 您的A
類不需要了解應用程序退出機制(因此可以在具有不同退出機制的其他應用程序中重用)。
我也這樣做了,所以它不會區分大小寫。 所以quit
, Quit
或QUIT
都會觸發動作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.