Desidero essere in grado di creare un decoratore python che "registri" automaticamente i metodi di classe in un repository globale (con alcune proprietà).Metodi di classe con registrazione automatica mediante decoratore
codice Esempio:
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...
voglio che quando il caricamento è fatto, da qualche parte ci sarà un dict contenente:
{ "my_class.my_method" : (prop1, prop2)
"my_class.my_other_method" : (prop3, prop4) }
è possibile?
+1 questa è la strada da percorrere (quando hai davvero bisogno di qualcosa di simile) –
Cosa succede se hai una sottoclasse, OurClass (MyClass) - e vuoi fare la stessa cosa? Come si può ottenere __metaclass__ per attraversare gli attrs di base e di figlio? – jMyles
@jMyles, i metodi della classe genitore sono già presenti nel registro; vuoi che si presentino di nuovo come metodi sulla classe bambino?Hai la base della tupla per la classe bambino; è possibile scorrere su uno o tutti i dizionari di classe delle classi genitore/base, nonché gli attributi della nuova classe figlio, quando si esegue la registrazione della classe figlio (se questo è ciò che si intende). –