2013-02-28 71 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