Как я могу получить параметр класса из функции класса через класс декоратора? - PullRequest
0 голосов
/ 07 мая 2019

Проблема: я хочу получить атрибут класса через декоратор, который является классом, но я не могу.Вопрос в том, как можно?

class DecoratorClass:

    def __call__(self, fn, *args, **kwargs) -> Callable:
        try:
            # do something with the TestClass value
            return fn
        finally:
            pass


class TestClass:

    def __init__(self):
        self.value = 1

    @DecoratorClass()
    def bar(self):
        return 1


Как мне получить значение атрибута TestClass через DecoratorClass?

1 Ответ

1 голос
/ 07 мая 2019

Я получил решение:)

class Decoratorclass:

    def __call__(self, fn, *args, **kwargs) -> Callable:

        def decorated(instance):
            try:
                # do something with the TestClass value
                print(instance.value)
                return fn(instance)
            finally:
                pass
        return decorated

class TestClass:

    def __init__(self):
        self.value = 1

    @Decoratorclass()
    def bar(self):
        return 1

...