繁体   English   中英

来自基础类的pdb,进入派生类的方法

[英]pdb from base class, get inside a method of derived class

我需要在基类中使用pdb.set_trace() 它有一个方法:

def run(self, *args, **kwargs):
    raise NotImplementedError

由于此基类是由许多子类派生的,因此我事先都不知道需要进入哪个类的run()方法。 还可以对run()方法的参数进行一些预处理。 因此,当pdb达到要求时,

q=self.run(arguments)

然后按s ,就好像我next命令一样。

如何使用pdb进入派生类的run()方法并在那里调试代码?

如果此示例满足您的问题,则可以正常工作:

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()方法。 问题解决了!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM