Как использовать super () с "атрибутом дочернего класса", чтобы получить "атрибуты родительского класса"? - PullRequest
0 голосов
/ 29 марта 2019

Я хочу получить атрибут через "tree" наследования class, с class, который я до сих пор не реализовал. Поэтому я хотел бы получить их атрибуты без присмотра.

Что я имею в виду под неконтролируемым способом: получить _nameClass_ родительского класса без его ведома. В настоящее время все мои class имеют атрибуты, которые на самом деле имеют собственное имя. Я могу использовать этот class без получения их имени, как и с eval(), я могу инициализировать родительский экземпляр class, не зная его собственного имени.

ex1:

    class GrandParent(Library):
        _name_ = 'Grandparent'
        _instance_ = Library()

        def __init__(self):
            value = 0

    class Parent(GrandParent):
        _name_ = 'Parent'
        _parentName_ = super()._name_
        _instance_ = super()._instance_

        def __init__(self):
            value = 1

    class Child(Parent):
        _name_ = 'Child'
        _parentName_ = super()._name_
        _instance_ = super()._instance_

        def __init__(self):
            value = 2

ошибка:

    ---------------------------------------------------------------------------
    RuntimeError                              Traceback (most recent call last)
    <ipython-input-119-03637faee91a> in <module>()
          5         value = 0
          6 
    ----> 7 class Parent(GrandParent):
          8     _name_ = 'Parent'
          9     _parentName_ = super()._name_

    <ipython-input-119-03637faee91a> in Parent()
          7 class Parent(GrandParent):
          8     _name_ = 'Parent'
    ----> 9     _parentName_ = super()._name_
         10
         11 
         12     def __init__(self):

    RuntimeError: super(): no arguments
...