Я хочу, чтобы иметь возможность создать декоратор python, который автоматически «регистрирует» методы класса в глобальном репозитории (с некоторыми свойствами).Методы класса авторекламы с использованием декоратора
Пример кода:
class my_class(object):
@register(prop1,prop2)
def my_method(arg1,arg2):
# method code here...
@register(prop3,prop4)
def my_other_method(arg1,arg2):
# method code here...
Я хочу, чтобы при загрузке не будет сделано, где-то там будет Dict, содержащий:
{ "my_class.my_method" : (prop1, prop2)
"my_class.my_other_method" : (prop3, prop4) }
Возможно ли это?
+1 Это способ пойти (когда вам действительно нужно что-то подобное) –
Что делать, если у вас есть подкласс OurClass (MyClass) - и вы хотите сделать то же самое? Как вы можете получить __metaclass__, чтобы пересечь attrs как базы, так и ребенка? – jMyles
@jMyles, методы родительского класса уже находятся в реестре; вы хотите, чтобы они снова отображались как методы для дочернего класса?У вас есть кортеж для дочернего класса; вы можете перебирать любые или все словари классов родительского/базового классов, а также атрибуты нового дочернего класса при регистрации дочернего класса (если это то, что вы имеете в виду). –