python中有通用继承吗?

Kar*_*ran 2 python inheritance

我想知道python中是否存在泛型继承.

例如,

Class A(object):
  def foo():

Class B(object):
  def foo():


Class C(<someParentClass>):
  def bar():
Run Code Online (Sandbox Code Playgroud)

如此有效,我想做点什么

  myClass1 = C()<A>
  myClass2 = C()<B>
Run Code Online (Sandbox Code Playgroud)

我猜这在python中是不可能的,但有没有其他方法可以产生类似的效果?

Tho*_*ers 9

什么都没有阻止它.Python中的所有内容基本上都是通用的.一切都是运行时,包括类语句,所以你可以这样做:

def make_C(parent):
    class C(parent):
        def bar(self):
            ...
    return C

myClass1 = make_C(A)
myClass2 = make_C(B)
Run Code Online (Sandbox Code Playgroud)

如果您希望C类在名称或文档中更具描述性,则可以分配__name____doc__属性,或使用三参数形式type()而不是class语句来创建它.