1

Profというスクリプトで呼び出されるクラスを定義しましたAddPntCode90_27.py。いくつかのファイルを開き、いくつかの計算を行い、出力ファイルを作成します。今、私は別のプログラムのためにクラスを再利用したいと思っています. ただしAddPntCode90_27.py、モジュールではないため、クラスをインポートするだけでなく、常にスクリプトを実行します。私もそうでしfrom AddPntCode90_27 import *from AddPntCode90_27 import Prof。私はこの記事に精通しています。だから私の質問は:

  • このようなスクリプト内でクラスを定義するのは悪い習慣ですか? それらを常に別のファイルに保管する必要がありますか?
  • ただし、定義されているスクリプトを実行せずに、クラスとそのメソッドだけをインポートする方法はありますか?

ああ、私は Python 2.7 を実行しています。

4

2 に答える 2

6

あなたが望むことをする方法は、if __name__ == "__main__"ブロックを使うことです。この質問を参照してください。

スクリプトでクラスを定義することはまったく問題ありませんが、クラスを定義するのはスクリプトを実行することだけであるため、スクリプトを実行せずにクラスをインポートすることはできません。クラス定義は、Python の「コンパイル時の宣言」ではありません。それらは、モジュール内の他のすべてのものと同じように順番に実行されます。if __name__=="__main__"ファイルをモジュールとしてインポートするときに実行したくないコードを保護するには、ブロックを使用する必要があります。

于 2012-08-08T08:08:04.510 に答える
0

if __name__="__main__:Python がコードを実行しているか、コードがモジュールとしてインポートされているかを確認するイディオムが必要です。

于 2012-08-08T08:16:30.220 に答える