pdb可以打印派生类从哪个基类继承特定方法吗?
import pdb
class A():
def funct(self):
print 3
class B():
def funct(self):
print 6
class C(A, B):
pass
b = B();
print b.funct()
===================================
☺ python a.py
3
None
======================================
python -m pdb a.py
(Pdb) p c.funct
<bound method C.funct of <__main__.C instance at 0x102154440>>
有没有办法从哪个基类中获取,派生类C继承了funct方法?
答案 0 :(得分:1)
你必须亲自指导。
你可以把剪切的波纹管放在一个实用函数中,但想法是:从类中检索类,迭代__mro__
属性,并在每个类中检查所需的函数或属性在__dict__
:
print(list(cls for cls in b.__class__.__mro__ if "funct" in cls.__dict__))
(你知道“pdb”与此无关 - 并且Python通常可以在交互模式下工作,对吧?PDB只是进入交互模式的一种方式,虽然与Python相比资源较差贝壳像ipython。)
作为第二个注释:我不知道你在做什么,但你真的应该尝试在Python 3.x中,而不是Python 2。