Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.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 如何确定方法是从哪个类继承的?_Python_Multiple Inheritance - Fatal编程技术网

Python 如何确定方法是从哪个类继承的?

Python 如何确定方法是从哪个类继承的?,python,multiple-inheritance,Python,Multiple Inheritance,是否可以判断方法是从哪个类继承的。下面举一个例子 class A: def foo(): pass class B(A): def boo(A): pass class C(B): def coo() pass class D(C): def doo() pass >>> dir (D) ['__doc__', '__module__', 'boo', 'coo', 'doo', 'foo'] 是否有任何

是否可以判断方法是从哪个类继承的。下面举一个例子

class A:
   def foo():
     pass
class B(A):
   def boo(A):
     pass
class C(B):
   def coo()
     pass
class D(C):
   def doo()
      pass  

>>> dir (D)
['__doc__', '__module__', 'boo', 'coo', 'doo', 'foo']
是否有任何方法可以告诉我从哪些类别boo、coo、foo继承而来?

使用该模块:

A类:
def foo(self):
通过
B(A)类:
def boo(Aself):
通过
丙(乙)类:
def首席运营官(自我):
通过
D(C)类:
def doo(自我):
通过
进口检验
检查、分类属性(D)
[(“文件”、“数据”,无),
(“模块”、“数据”、“主模块”,
(“boo”,
"方法",,
,
),
(“coo”,
"方法",,
,
),
(‘doo’,
"方法",,
,
),
(“foo”,
"方法",,
,
)]

如果您的代码中需要它,那么它可能已经损坏了。
class A:
   def foo(self):
     pass
class B(A):
   def boo(Aself):
     pass
class C(B):
   def coo(self):
     pass
class D(C):
   def doo(self):
      pass  

import inspect 
inspect.classify_class_attrs(D)

[('__doc__', 'data', <class __main__.D at 0x85fb8fc>, None),
 ('__module__', 'data', <class __main__.D at 0x85fb8fc>, '__main__'),
 ('boo',
  'method',
  <class __main__.B at 0x85fb44c>,
  <function boo at 0x8612bfc>),
 ('coo',
  'method',
  <class __main__.C at 0x85fb8cc>,
  <function coo at 0x8612ca4>),
 ('doo',
  'method',
  <class __main__.D at 0x85fb8fc>,
  <function doo at 0x8612f0c>),
 ('foo',
  'method',
  <class __main__.A at 0x85fb71c>,
  <function foo at 0x8612f7c>)]