我需要在基类中使用pdb.set_trace()
。它有一个方法:
def run(self, *args, **kwargs):
raise NotImplementedError
由于这个基类是由许多子类派生的,所以我事先并不知道哪个类是什么?我需要进入run()
方法。还有一些对run()
方法的参数进行预处理。
所以当pdb到达该行时,
q=self.run(arguments)
我点击了s
,就好像我已经发出命令next
一样。
如何进入派生类'使用pdb run()
方法并在那里调试代码?
答案 0 :(得分:0)
如果这个例子满足你的问题,那就完全没问题了:
<强> base.py:强>
class basebase():
print("something")
def fun(self):
print("hello")
def getobj(obj):
obj.fun()
print("run")
<强> intermediate.py:强>
from base import basebase
class inter(basebase):
print("nothing")
<强> derived.py:强>
from intermediate import inter
class der(inter):
def fun(self):
print("world")
<强> main.py:强>
from derived import der
from base import basebase
obj=der()
basebase.getobj(obj)
现在只需将pdb.set_trace
添加到getobj()
方法即可。问题解决了!