gpt4 book ai didi

python 用颜色引发 KeyError 消息

转载 作者:太空狗 更新时间:2023-10-29 21:50:16 24 4
gpt4 key购买 nike

似乎 KeyError 消息的管理方式与其他错误不同。例如,如果我想使用颜色,它将对 IndexError 有效,但对 KeyError 无效:

err_message = '\x1b[31m ERROR \x1b[0m'

print err_message

raise IndexError(err_message)

raise KeyError(err_message)

知道为什么吗?有没有办法绕过它?(我真的需要引发一个 KeyError 类型的异常,以便稍后能够捕获它)

最佳答案

这些异常的行为是不同的。 KeyError 对传递的消息执行以下操作

   If args is a tuple of exactly one item, apply repr to args[0].
This is done so that e.g. the exception raised by {}[''] prints
KeyError: ''
rather than the confusing
KeyError
alone. The downside is that if KeyError is raised with an explanatory
string, that string will be displayed in quotes. Too bad.
If args is anything else, use the default BaseException__str__().

为此可以使用以下解决方法:创建自己的类并覆盖 repr:

例如

class X(str):
def __repr__(self):
return "'%s'" % self

raise KeyError(X('\x1b[31m ERROR \x1b[0m'))

但我真的不明白为什么需要这个...我认为@BorrajaX 评论是更好的解决方案。

关于python 用颜色引发 KeyError 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17350449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com