可能重复:
类和实例
使用相同的方法同时使用来自类和实例的方法
我正在做一个项目,我们有用 python 编写的测试用例。在某些测试用例中,我们在 setUpClass 中进行大部分设置,在某些情况下在 setUp 中进行设置。例如,我们在数据库中准备数据。我们有填充数据库等的辅助方法。我想要的是既作为类方法又作为实例方法工作的方法。例如:
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 将不起作用。
当然,我们可以让它成为一个静态方法,将类或实例作为参数,但我觉得这很丑陋,如果可能的话,我宁愿以更好的方式来做。
至少我想知道是否有可能让我停止思考。我希望测试用例清晰易读,如果基类中有丑陋的解决方案,我可以接受。