這是我的問題。我創建了一個非常繁重的只讀類,使用靜態「工廠」方法進行多個數據庫調用。此方法的目標是避免在已經創建的對象池中查找同一對象(相同類型,相同的初始參數)的相同實例已經存在的情況下查殺數據庫。如何從靜態方法創建類的實例?
如果發現有問題,該方法將返回它。沒問題。但是,如果不是,我怎麼可以創建一個對象的實例,以繼承的方式工作?
>>> class A(Object):
>>> @classmethod
>>> def get_cached_obj(self, some_identifier):
>>> # Should do something like `return A(idenfier)`, but in a way that works
>>> class B(A):
>>> pass
>>> A.get_cached_obj('foo') # Should do the same as A('foo')
>>> A().get_cached_obj('foo') # Should do the same as A('foo')
>>> B.get_cached_obj('bar') # Should do the same as B('bar')
>>> B().get_cached_obj('bar') # Should do the same as B('bar')
謝謝。
爲什麼這麼複雜?爲什麼不簡單'getInstance(A,'foo')'或'getInstance(b,'bar')'? – 2010-03-11 16:57:45
實際的課程比示例中的課程稍微複雜一些。這部分只是一個失蹤,實際上:) – Pierre 2010-03-12 10:27:10