Как я могу наиболее красиво применить методы родительского класса ко всем (зарегистрированным) экземплярам? - PullRequest
0 голосов
/ 29 августа 2018

Для простоты программирования я хочу реализовать что-то вроде этого: SpecialCaseChildClass.apply_to_all_members_of_child_class.any_method_of_parent ()

Еще более удивительной была бы реализация, в которой я могу предоставить список аргументов, который позволяет мне перебирать аргументы:

SpecialCaseChildClass.apply_to_all.any_method_of_Parent(
argument1_of_parent_method = range(number_of_children), argument2_of_parent_method = range(number_of_children))

Итак, мое предложение в словах: (Как) я могу поместить объект / метод apply_to_all_members_of_class между дочерними и родительскими методами в цепочке команд?

Я попытался реализовать эту функцию с помощью метода класса:

class SpecialCaseChildClass(Parent):

    registry = []

    def __init__(self, **kwargs, *args):
        super().__init__(self, **kwargs, *args)
        registry.append(self)

    @classmethod
    def apply_to_all(cls, any_function, *args, **kwargs):
        [any_function(child, *args, **kwargs) for child in cls.registry]

, что позволило бы следующее:

SpecialCaseChildClass.apply_to_all_members_of_child_class(ParentClass.any_Parent_method, *args, *kwargs)

но это не так красиво, как простое дополнение к цепочке.

Возможна ли такая вещь относительно просто?

Это даже желательно?

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