我在Windows上,使用的是python 3.7.7。我正在努力创造一种高尔夫语言。在这个例子中,如果你提出一个异常(要清除NameError
(,如下所示:
raise NameError("Your input was not recognized as a function, variable or datatype")
然后程序自动退出。当我尝试这个:
print(NameError("Your input was not recognized as a function, variable or datatype"))
然后它会打印错误,但不是完全打印,也不是像这样用红色显示:Your input was not recognized as a function, variable or datatype
有没有办法让程序不应该退出并打印出真正的错误?
在没有更多详细信息的情况下,您可以尝试以下操作:
try:
raise(NameError("Your input was not recognized as a function, variable or datatype"))
except Exception as e:
print(repr(e))
然而,这并不是应该使用异常的确切方式。
我很惊讶没有人提到Python termcolor模块。用法非常简单:
from termcolor import colored
Python 2:
print colored('hello', 'red'), colored('world', 'green')
或者在Python 3:中
print(colored('hello', 'red'), colored('world', 'green'))
随着";尝试除";语句,因为毕竟,通过在except子句中添加一些内容,您可以在不退出程序的情况下引发异常。
经过长时间的研究,我找到了答案:这不会引发错误,但会在终端和外壳中打印彩色错误
- 使用pip安装CLINT
pip install clint
- 在Python中
import sys
try:
sys.stdout.shell.write("Your input was not recognized as a variable, function or datatypen", "COMMENT")
except AttributeError:
puts(colored.red("Your input was not recognized as a variable, function or datatype"))