我想在异常消息中获得函数参数的文字表示。因为x可以是任何对象类型,所以可能没有为此类型定义str和repr。有没有办法实现这一目标?感谢
e.g。
def f(x, y)
raise Exception("<x> is not valid")
答案 0 :(得分:0)
正如Johnrsharpe所述,在你的用例中,简单的格式应该没问题。
例如,如果你有一个类和一个函数。
class Myobj:
pass
def f(x, y):
raise Exception("{!r} is not valid".format(x))
f(Myobj, 1)
您应该能够获得输出和良好的追溯
Traceback (most recent call last):
File "42920465.py", line 9, in <module>
f(Myobj, 1)
File "42920465.py", line 6, in f
raise Exception("{!r} is not valid".format(x))
Exception: <class '__main__.Myobj'> is not valid
您可以在描述中看到被调用的对象被提及。