我试图在运行时找出对象被实例化的位置,因为这可以为我的库的用户提供非常有用的错误消息。
假设我们有以下代码:
import mylib
obj = mylib.MyClass()
obj
然后从 传递给另一个类的实例mylib
,然后开始一段美妙的旅程。沿着这条线的某个地方,obj
会导致一些不好的事情发生,我想将用户指向obj
实例化的位置。
我希望我可以使用检查模块来找出在哪个文件中以及在哪个行号obj
被实例化。不幸的是,inspect.getsourcefile
andinspect.getsourcelines
不支持实例。是否存在不支持的技术原因?
还有其他方法可以获得我正在寻找的数据吗?