爲了更好的封裝,我想用相同類中的方法來裝飾實例方法。在python中,我可以訪問類作用域中的方法(但不在函數範圍內)
class SomeClass(object):
@staticmethod
def some_decorator(func):
def wrapped(self):
print 'hello'
return func(self)
return wrapped
@some_decorator
def do(self):
print 'world'
x = SomeClass()
x.do()
然而,這段代碼引發TypeError: 'staticmethod' object is not callable
現在我做一個變通方法通過定義一個類,重載其新方法模擬功能,但它最終還是一類,而不是一個函數。
那麼我可以在類範圍內訪問我的函數嗎?
[Python的裝飾作爲一個靜態方法(可能的重複http://stackoverflow.com/questions/6412146/python-decorator-as-a-staticmethod) – julienc