簡體   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