Python类构造函数不起作用,给出的参数太多

时间:2016-12-29 19:00:03

标签: python django

我没有写" Django"在问题中我不认为它是相关的。我有一个像这样开始的Django测试:

class APITests(APITestCase):

    def __init__(self):

        self.token = ""
        self.fixtures = ['tests/testdata.json']
        super(APITests, self).__init__()

它没有用,它给了我错误:

TypeError: __init__() takes exactly 1 argument (2 given)

有人可以解释我为什么吗?我怎么解决这个问题?

1 个答案:

答案 0 :(得分:2)

我认为你不应该为__init__覆盖APITestCase。我认为它们提供了可以覆盖的特殊setupteardown方法。

但是如果你真的必须覆盖它,请确保你接受测试框架传递的所有参数:

class APITests(APITestCase):
    def __init__(self, *args, **kwargs):
        self.token = ""
        self.fixtures = ['tests/testdata.json']
        super(APITests, self).__init__(*args, **kwargs)

或将它们定义为类属性:

class APITests(APITestCase):
    tokens = ""
    fixtures = ('tests/testdata.json')
    ...