编程语言
首页 > 编程语言> > Python继承 – 从基类到派生类

Python继承 – 从基类到派生类

作者:互联网

给定一个类和其他类直接或间接地扩展它.有没有办法获得所有直接扩展原始类的类.

class Alpha(object):
    @classmethod
    def get_derivatives(cls):
        return [Beta, ] # when called from Alpha
        return [] # when called from Beta

class Beta(Alpha):
    pass

我猜是有一些并发症或完全不可能.必须有一些规范来定义派生类的位置,这会使事情变得棘手……

我最好的选择是将派生类硬编码到基类中吗?

解决方法:

也许你正在寻找__subclasses__ method

class Alpha(object):
    @classmethod
    def get_derivatives(cls):
        return cls.__subclasses__() 

class Beta(Alpha):
    pass

print(Alpha.get_derivatives())
print(Beta.get_derivatives())

产量

[<class '__main__.Beta'>]
[]

标签:derived-class,python,inheritance
来源: https://codeday.me/bug/20190901/1783133.html