有可能使一个类方法也是一个实例方法吗?

时间:2012-05-11 10:06:54

标签: python testing

  

可能重复:
  The same method for class and instance
  Use a method both from a class and from an instance

我正在开发一个项目,我们用python编写测试用例。在一些测试用例中 我们在setUpClass中设置最多,在setUp中设置一些。例如,我们在数据库中准备数据。我们有帮助方法来填充数据库等。我想要的是什么 既可作为classmethod又可作为实例方法的方法。例如:

class TestBase(object):

    def insertStuff(self, data):
        self.cursor.execute(...)

# Usage 1, class
class Test1(TestBase):

    @classmethod
    def setUpClass(cls):
        cls.insertStuff([1, 2, 3])

# Usage 2, instance
class Test2(TestBase):

    def setUp(self):
        self.insertStuff([1, 2, 3])

这不起作用,因为insertStuff不是类方法。如果我们改变它,使它成为一个类方法,用法2将无效。

当然,我们可以将它作为一个静态方法,将类或实例作为参数,但我发现它非常难看,如果可能的话,宁愿以更好的方式进行。

至少我想知道是否有可能让我不再考虑它。 如果有一个丑陋的解决方案,我希望测试用例清晰易读 在基类中,我可以忍受。

0 个答案:

没有答案