【问题标题】:pdb from base class, get inside a method of derived class来自基类的pdb,进入派生类的方法
【发布时间】:2018-08-19 05:32:16
【问题描述】:

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

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

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

q=self.run(arguments)

然后我点击s,就好像我已经给出了命令next

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

【问题讨论】:

  • 能否请您更清楚,例如您尝试在哪个 IDE 中调试以及收到什么消息/错误?您的问题目前还不清楚。

标签: python debugging inheritance pdb


【解决方案1】:

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

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")

派生的.py:

from intermediate import inter
class der(inter):
    def fun(self):
        print("world")

ma​​in.py:

from derived import der
from base import basebase
obj=der()
basebase.getobj(obj)

现在只需将pdb.set_trace 添加到getobj() 方法。问题解决了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-16
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    • 2016-01-01
    • 1970-01-01
    相关资源
    最近更新 更多