2017-10-02 10 views
0

私は2つのpythonファイルを扱っています。私が行っていたら、私は別のから1を呼び出すために計画します。if __name__ == "__main__" on Imports

main.py 
import os, re, time, logging, sys, subprocess, operator, datetime, pprint, dbfread, collections, calendar, xlwt, xlrd, errno, platform, stat 
import subfile 
# A long body of codes that does things 

subfile.py 
import os, re, time, logging, sys, subprocess, operator, datetime, pprint, dbfread, collections, calendar, xlwt, xlrd, errno, platform, stat 
# Another long body of codes that does things 

私はmain.pyを呼び出す場合、私はそれがまたsubfile.pyを実行することを期待します。場合によっては、私はsubfile.pyを別々に実行し、それ自体が正常に動作するようにしたいと考えています。今、subfile.pyに、if __name__ == "__main__"の下にインポートコマンドをネストする必要がありますか?

subfile.py 
if __name__ == "__main__": 
    import os, re, time, logging, sys, subprocess, operator, datetime, pprint, dbfread, collections, calendar, xlwt, xlrd, errno, platform, stat 
# Another long body of codes that does things 

答えて

1

非常に同じモジュールの複数のインポートを避けることを目的としている場合は、それを恐れないでください。

すでにインポートされたモジュールのインポートは、ほぼノーオペレーションであり、基本的にはモジュールの1つのルックアップです。

したがって、プログラムを少し複雑にし、読みにくくするという欠点がありません。

1

いいえ、原則として、ファイルの先頭にインポートを置き、pythonで管理します。インポートがクラス/メソッド/関数の中に置かれるべき場合もあるかもしれませんが、これはその1つではありません。

物事が複雑になる場合は、パッケージの__init__.pyに輸入品を入れることができます。

関連する問題