如何获取函数参数的文字表示?

时间:2017-03-21 07:09:40

标签: python

我想在异常消息中获得函数参数的文字表示。因为x可以是任何对象类型,所以可能没有为此类型定义str和repr。有没有办法实现这一目标?感谢

e.g。

def f(x, y)
  raise Exception("<x> is not valid")

1 个答案:

答案 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

您可以在描述中看到被调用的对象被提及。