Python中如何让抛出的错误信息打印对象类型?
问题解决:TypeError中无法显示对象类型的处理方法
你的代码逻辑本身没问题,但可能是Python 3.11中错误信息渲染的特殊情况,或是运行环境(如Jupyter Notebook)的显示异常。可以通过以下几种方式解决:
显式转换类型为字符串:
用str()或repr()包裹type(x),确保类型信息被正确格式化到错误字符串中:x = 5 raise TypeError(f"Input was type: {str(type(x))}")或使用
repr()获取更明确的类型表示:x = 5 raise TypeError(f"Input was type: {repr(type(x))}")先构造错误信息再抛出:
提前将错误信息赋值给变量,避免在异常构造函数中直接格式化可能出现的问题:x = 5 error_msg = f"Input was type: {type(x)}" raise TypeError(error_msg)直接字符串拼接:
绕过f-string的潜在问题,用基础的字符串拼接方式:x = 5 raise TypeError("Input was type: " + str(type(x)))
这些方法都能确保对象的类型信息被正确包含在抛出的TypeError错误信息中。
内容的提问来源于stack exchange,提问作者Louis Desdoigts
相关产品推荐
相关产品推荐

