我希望能夠創建一個自動「註冊」全局存儲庫(具有一些屬性)的類方法的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...
我想,當加載完成後,地方會有包含字典:
{ "my_class.my_method" : (prop1, prop2)
"my_class.my_other_method" : (prop3, prop4) }
這可能嗎?
+1這是要走的路(當你真的需要這樣的東西時) – 2010-06-16 15:17:56
如果你有一個子類OurClass(MyClass) - 你想要做同樣的事情?你怎麼能讓__metaclass__遍歷基地和孩子的宿敵? – jMyles 2015-06-12 21:04:51
@jMyles,父類的方法已經在註冊表中;你希望他們再次出現在孩子課上的方法?你有孩子課的基礎元組;您可以在進行子類註冊時(如果這就是您的意思)遍歷父/子類的任何或所有類字典以及新子類的屬性。 – 2015-06-13 13:46:13