ファイルを読んだときriak-python-client/riak/riak_object.py。ファイルの一番下で、私はこれを見ました
from mapreduce import *
何に使うの?ファイルの先頭にインポートするのはなぜですか。
ファイルを読んだときriak-python-client/riak/riak_object.py。ファイルの一番下で、私はこれを見ました
from mapreduce import *
何に使うの?ファイルの先頭にインポートするのはなぜですか。
これは、すべてのモジュールmapreduceをriak_object名前空間に配置するように設計されています。このインポートを の先頭に配置すると、まだ定義されていないからのインポートでriak_object.pyあるため、エラーが発生します。mapreduceRiakObjectriak_object
importファイル内の任意の場所で を使用できます。モジュールをインポートするまで、モジュールからのものを使用しようとしないことを確認する必要があります。
これが実際にファイル内で実行される最後の行である場合、何の目的も果たさないでしょう。ファイルの最後にあるが関数またはメソッド内にある場合は、その関数/メソッドが頻繁に実行されず、作成者がmapreduceプログラムを実行するたびにインポートするオーバーヘッドを望んでいないことを意味する可能性があります.
そのプロジェクトの具体的な理由はわかりませんが、インポートをファイルの先頭に置くだけです。これにより、依存関係の追跡がはるかに簡単になり、Python のスタイル ガイドで推奨されています。
技術的には、ステートメントによってインポートされたコードはimport、ステートメントが実行された後にのみ使用できますimport。これは、ファイルの最後に配置すると、そのファイルにインポートされたものを (モジュール レベルで) 使用できないことを意味します。そのファイルの関数はインポートを使用できます...しかし、それは悪い習慣です。
唯一の理由は、riak_object(これは from から何も必要としないように思われる?) が、何らかの便利さからmapreduceすべての値 (または で指定されたもの) をその名前空間に持ち込んでいることです。__all__mapreduce