【问题标题】:Python get parent classes from another class [duplicate]Python从另一个类获取父类[重复]
【发布时间】:2018-01-31 12:24:25
【问题描述】:
class Test(object):
    def __init__(self, name, myclass):
        self.name = name
        self.myclass = myclass

   def get_parents(self):
        ? self.myclass.super() ?
        return parent

obj = Art # another class
testobj = Test('testA', obj)
print(testobj.get_parents())

Test的父类可以使用super()获取。

如何在Test类中获取Art的父类? (假设Art 是从ArtistsArtists 继承自Base。我们需要能够获得ArtistsBase 作为父母。)

【问题讨论】:

  • “Test的父类可以使用super()获取” 不正确。 super 不给你父类,它给你一个代理对象。
  • 是的。我的意思是可以访问父类。

标签: python-3.x class


【解决方案1】:

可以通过mro()获取方法解析顺序:

class Test(object):
    def __init__(self, name, myclass):
        self.name = name
        self.myclass = myclass

    def get_parents(self):
        return self.myclass.mro()

class Base:
    pass

class Artists(Base):
    pass

class Art(Artists):
    pass

testobj = Test('testA', Art)
print(testobj.get_parents())

输出:

[<class '__main__.Art'>, <class '__main__.Artists'>, <class '__main__.Base'>, <class 'object'>]

这应该接近:

我们需要能够获得ArtistsBase 作为父母。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-15
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 2012-12-16
    • 2018-07-25
    • 1970-01-01
    • 2017-08-04
    相关资源
    最近更新 更多