Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将一个pdb命令转换为另一个命令,但它';它不工作了_Python_Debugging_Pdb_Cpython - Fatal编程技术网

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!