首先让我说抱歉我无法再进一步压缩这个问题。这是一个非常简单的概念,但我发现很难用一种可以普遍理解的方式来表达。我在下面使用的许多单词都被抛到一边,所以你不得不设置一个完整的场景来清晰地使用它们。
我在交互模式下运行游戏脚本,这样如果我以异常方式打破它,我仍然可以与游戏环境(类,对象和变量)进行交互。
myScript.py:
def game():
print("")
print("Starting game loop...")
display=0
while True:
print(display)
command = input("Press ENTER to proceed...")
game()
但每次我更新脚本时,我都必须通过指定' console'来解决break
的循环。在用户提示符下,然后在控制台上调用exit()
,然后返回到终端,然后我可以运行新的脚本。
所以我将这些行添加到游戏循环中:
if command.lower() == "console":
print("")
break
elif command.lower() == "terminal"
#exit() throws an exception
#`import sys` nl `sys.exit()` throws an exception
else:
display+=1
print("")
print("Continuing game loop...")
输出:
user@user-VirtualBox-Ubuntu:~$ python3 -i /home/username/scripts/myScript.py
Starting game loop...
0
Press ENTER to proceed, enter 'console' to halt and 'terminal' to leave...
Continuing game loop...
1
Press ENTER to proceed, enter 'console' to halt and 'terminal' to leave...
Continuing game loop...
2
Press ENTER to proceed, enter 'console' to halt and 'terminal' to leave...
Continuing game loop...
3
Press ENTER to proceed, enter 'console' to halt and 'terminal' to leave... console
>>>
正如你在上面所看到的,我已经准备了一个elif环境,可以跳过一个步骤然后直接进入终端,然后我可以按两次UP来查找clear
然后再按UP两次以查找我的交互式脚本调用行。但是,我在SO上找到的唯一相关解决方案就是你可以在我的myScript.py
文件中看到的涉及导入sys
的问题,这会引发错误。
那么,是否可以从脚本生成exit()
(从命令行输入时)的行为而不产生异常?