Python 将一个pdb命令转换为另一个命令,但它';它不工作了
需要帮助,我正在尝试将Python 将一个pdb命令转换为另一个命令,但它';它不工作了,python,debugging,pdb,cpython,Python,Debugging,Pdb,Cpython,需要帮助,我正在尝试将c命令的功能更改为quit命令,这些更改是进一步创建新命令所必需的。我不知道我做错了什么,这两件事有什么不同,第一件很好,但第二件不行,我只是在改变行为 db = pdb.Pdb() db.do_c = db.do_quit no = 3 db.runcall(fun,no) 但这不起作用,在这种情况下,self.do_quit甚至没有接到电话 class dbg(pdb.Pdb): def custom_quit(self,arg): self.
c命令的功能更改为quit
命令,这些更改是进一步创建新命令所必需的。我不知道我做错了什么,这两件事有什么不同,第一件很好,但第二件不行,我只是在改变行为
db = pdb.Pdb()
db.do_c = db.do_quit
no = 3
db.runcall(fun,no)
但这不起作用,在这种情况下,self.do_quit甚至没有接到电话
class dbg(pdb.Pdb):
def custom_quit(self,arg):
self.do_quit
db = dbg()
no = 3
db.do_c = db.custom_quit
db.runcall(fun,no)
我只是在玩简单的功能
def fun(no):
print("a")
print("b")
for i in range(0,no):
print(i)
return 'abc'
在命令c
上,它什么也不做。在类中扩展方法的通常方法是使用相同的名称
调用super()
以保留
原始方法功能:
因此,您可以将自定义方法更改为
class dbg(pdb.Pdb):
def do_quit(self, arg):
super().do_quit(arg)
print('do something else')
return(1)
并在上面贴上:
db.do_c = db.do_quit # do_quit as usual
查看pdb.py
并搜索do\u quit
函数,您将
理解你必须做的事情,或以某种方式保存的事情,
包括返回(1)
欢迎来到StackOverflow!