我有一個函數,它是一個類方法,我想測試一個類的屬性,它可能是也可能不是None,但會一直存在。測試@classmethod函數的現有屬性,得到AttributeError
class classA():
def __init__(self, var1, var2 = None):
self.attribute1 = var1
self.attribute2 = var2
@classmethod
def func(self,x):
if self.attribute2 is None:
do something
我得到的錯誤
AttributeError: class classA has no attribute 'attributeB'
當我訪問屬性像我表現,但如果在命令行中,我可以看到它的工作原理,
x = classA()
x.attribute2 is None
True
所以測試工作。
如果我從func
中刪除@classmethod
修飾符,則問題消失。
如果我離開@classmethod
裝飾器,它似乎隻影響在超類的構造函數中提供默認值的變量。
上面的代碼是怎麼回事?
「attributB」!=「attributeB」 – 2010-05-07 21:23:45
請提供一個更完整的代碼示例(這是你的代碼甚至無法有效)。 – ChristopheD 2010-05-07 21:25:58