2016-04-23 6 views
0

main()をPython 2.7.11のクラスファイルに作成して実行しようとしていますが、Pythonはmain()に引数を渡す必要があります。TypeError:main()は1つの引数(0が指定されています)を受け取ります

def main(self): 
    howManyBadCrops = BadCropsDetector() # My class 
    # a bunch of stuff goes here that runs the module.... 

if __name__ == "__main__": 
    main() 

どうしてですか?ここに私の端子出力である:

Traceback (most recent call last): 
    File "badCropsDetector.py", line 11, in <module> 
    class BadCropsDetector: 
    File "badCropsDetector.py", line 66, in BadCropDetector 
    main() 
TypeError: main() takes exactly 1 argument (0 given) 
+1

何のコンパイラはありませんが、これは、Javaではありません:) –

+0

申し訳ありません。 Java xDでの作業に非常に慣れていた用語を削除します。 – Jodo1992

+1

私はあなたがPythonでJavaをプログラミングしていたことを理解したかっただけです(あなたは "コンパイラ"について話しました。クラスの中で 'main'関数を定義し、そのクラスを参照せずに呼び出すことにしました)。 Javaで思考をやめ、Pythonでプログラミングするのが簡単になる –

答えて

4

これに関連して、あなたはmainの関数定義のself引数を必要としません。これは、mainが明らかにモジュールレベルの関数であるため、クラス内に含まれる関数(つまり、のメソッド)を書くときには、selfを指定する必要があります。

単に定義から取り出します。

def main(): 
+0

迅速な対応をありがとうございます。 'self'引数を削除し、' def main() 'をクラスの外に置くだけで、問題は解決されました。 – Jodo1992

+0

答えを覚えて受け入れてください@ Jodo1992 –

+0

私はこの明確かつ簡潔な答えが大好きです。どうもありがとうございました! – Siyah

関連する問題