5

PEP 8では、プログラムの最初にモジュールをインポートすることをお勧めします。

さて、メインプログラムの最初(つまり、後if __name__ == '__main__')にそれらのいくつかをインポートすることは理にかなっていると思います。たとえば、メインプログラムがコマンドラインから引数を読み取る場合、メインプログラムの最初で行う傾向がありますimport sysこのように、コードをモジュールとして使用する場合は、必要がないため、インポートする必要はありません。この場合、コマンドライン引数アクセス用。sys

このPEP8への違反はどれほど悪いですか?私はこれを控えるべきですか?または、PEP 8を修正することは合理的でしょうか?

4

5 に答える 5

9

これがどれほど悪いことか、私には本当に言えません。

ただし、特定のライブラリを最初の使用時にのみインポートすることで、Webアプリのパフォーマンス(応答時間、負荷)を大幅に改善しました。

ところで、以下もPEP8からのものです。

しかし、最も重要なことは、いつ矛盾するかを知ることです。スタイルガイドが適用されない場合があります。疑わしい場合は、最善の判断を下してください。他の例を見て、何が最もよく見えるかを決定します。そして、遠慮なく質問してください!

于 2009-10-14T09:23:03.290 に答える
6

一般に、必要のないモジュールを後でインポートしても、それほど害はないと思います。

ただしsys、私は間違いなく早い段階でインポートします。これは非常に一般的なモジュールであるため、スクリプトの他の場所で sys を使用する可能性が非常に高く、常にインポートされているとは限らないことに気付かないでしょう。sysまた、常に Python 自体によってロードされるモジュールの 1 つであるため、インポートを回避することでモジュールの起動時間を節約することはできません (いずれにせよ、sys の起動が多いわけではありません)。

于 2009-10-14T09:45:14.537 に答える
2

PEPに懸念事項がない場合は、最も適切と思われることを行うことをお勧めします。

于 2009-10-14T09:23:54.350 に答える
2

sys のインポートには、心配するほど時間はかかりません。ただし、一部のモジュールは時間がかかります。sys が名前空間を実際に詰まらせるとは思いません。いずれにせよ、sys という名前の変数やクラスは使用しません。

トップに立つことが良いことよりも害を及ぼしていると思われる場合は、ぜひ好きなようにやってください。PEP 8 は単なるガイドラインであり、目にする多くのコードはそれに準拠していません。

于 2009-10-14T09:43:17.213 に答える