首先,我不知道這是否是正確的方法。我想寫一個將用於其他類的方法的裝飾器類。在運行該方法之前,我想檢查是否所有需要的類變量都已初始化。理想的情況是類似於這樣的:Decorator類來測試所需的類變量
class Test(object):
def __init__(self, f):
self.f = f
# some magic
def __call__(self):
self.f.magically_get_variable(required)
# do some checks and execute method or throw an exception
class Data(object):
def __init__(self, a, b):
self.a = a
@test
def sum(self):
required('self.a', 'self.b')
return self.a + self.b
如果這不是它應該做的方式,請告訴我如何正確地做到這一點。
+1:'NameError'告訴你比任何裝飾更。它內置。它始終有效。 – 2010-03-10 20:24:48