2016-12-29 6 views
0

問題に「Django」と書かれていませんでしたが、関係がないと思います。私はこのように起動するDjangoのテストを持っている:Pythonクラスのコンストラクタが動作しません。引数が多すぎます

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) 

誰が、なぜ私に説明してもらえますか?どうすればこの問題を解決できますか?

+0

をこのエラーが出ますか?あなたはその痕跡をつけられますか? – martianwars

+0

スーパー(APITests、self).__ init __()にパラメータとして 'self'を渡す必要があります。 –

+0

すべてのPython質問には、スタックトレース全体と、スタックトレースによって示される行を含める必要があります。クラスのインスタンス化を表示します。 – skrrgwasme

答えて

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') 
    ... 
関連する問題