-
Как получить информацию о декораторах метода?
Как узнать, что у метода method1 класса A есть декораторы и какие параметры в эти декораторы передаются?class A:
@test('qqq')
@test1('qqq')
def method1(self):
pass -
Где узнать? В методе?... Так он же определяется вместе с декораторами...
-
Питон - это не ява, а декораторы - не аннотации. Функциональность обеспечивает сама функция-декоратор, а не какой-то сторонний код, который потом использует декорированый объект.
Если вы хотите как-то "пометить", то просто положите какой-то аттрибут в объект-функцию:class A:
def method1(self):
pass
method1.test = 'qqq' -
Получать хотелось информацию не в этом методе а в другом классе, например.
Хотелось что-то на подобии доступа к документации метода A.method1.__doc__, нету такого? -
Хотелось что-то на подобии доступа к документации метода
A.method1.__doc__class A: @test('qqq') @test1('qqq') def method1(self): """ использованы декораторы test и test1 """ pass:)
-
Можно заглянуть в A.method1.func_name
Например:
И дальше можно и сам decor так проверить.# если метод декорирован, получаем его декоратор
if A.method1.func_name != 'method1':
decor = A.__dict__[A.method1.func_name]
А уж интроспекция поможет узнать всё детали.
Если не всё, то многие. -
Андрей, а зачем вы это делаете? Поскольку в Питоне этого никогда не нужно на практике, у меня стойкое ощущение, что для вашей задачи есть более идиоматическое для Питона решение. Опишите всю задачу, пожалуйста.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.


