2013-02-28 70 views

回答

0

我認爲這兩種方式都有效,但與Java相比它有點奇怪。

0

self.attr引用實例的屬性,如果沒有在實例上定義的指定名稱的屬性,則將返回。通常這是合理的行爲。如果您特別想獲取課程的屬性,請使用self.__class__.attr

這是罕見的,任何人都將覆蓋上一個實例的方法,這需要特殊的「實例方法」對象的構造,所以self.method()一般是正確的(使用@classmethod@staticmethod甚至方法聲明)。

+0

我問這個問題是因爲jython unittest庫不像JUnit或TestNG,JUnit或TestNG的靜態斷言方法是在不引用測試類的情況下導入和使用的。在jython unittest中,如果繼承unittest.Testcase,則可以調用不帶self關鍵字的assert方法作爲參數(self.assertEquals(t_date.year,year))。如果使用unittest.TestCase中的assert方法,則必須包含self關鍵字作爲參數unittest.TestCase.assertEquals(self,t_date.year,year)。你不認爲它很奇怪。 – 2013-03-01 04:11:28