Импортировать каждый класс / файл из папки и добавлять в список объектов - PullRequest
0 голосов
/ 04 февраля 2020

Без необходимости вручную импортировать каждый класс в файл, я хотел бы добавить новые классы, которые будут расширять другой класс (Parent) и реализовывать интерфейс.

При этом каждый импортируемый класс будет иметь одинаковую структуру и функции. Я хотел бы добавить каждый класс из папки в список родительских объектов.

Как этого достичь?

class Pig(Animal):
    __init__():
        ...
class Chicken(Animal):
    __init__():
        ...

Я хочу импортировать как Свинью, так и Цыпленка, чтобы добавить в Список животных.

1 Ответ

0 голосов
/ 04 февраля 2020

Итак, ответ очень прост благодаря интересной магии Python. Вы можете найти подклассы любого cls через cls.__subclasses__().

from your_module import Animal

list_of_animal_subclasses = Animal.__subclasses__()
print(list_of_animal_subclasses )

Это не требует подклассов, чтобы быть в одном модуле с классом Animal или любой другой вещью. Это дает вам все подмодули класса Animal в тот момент, когда вы вызываете его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...