2010-12-14 8 views
0

ファイル内に80行程度の関数があります。私は別のファイルに同じ機能が必要なので、現在その機能のために他のファイルをインポートしています。Pythonでファイルを読み込むのが便利です

私の質問は、マシン上での実行時間の面では、より良い方法です: - 完全なファイルをインポートし、関数を実行するか、そのまま関数をコピーして、同じパッケージから実行します。

大きな意味では問題ではないことは分かっていますが、大規模なプロジェクトを作成している場合は、Pythonで完全なファイルをインポートしたり、現在の名前空間.....

+6

あなたはPythonでモジュールをインポートする必要があるかどうか本当に尋ねていますか? http://docs.python.org/tutorial/modules.html – Falmarri

+2

さあ、あなたは深刻なことはできません...してください。 – delnan

+0

コピー&ペーストは、ほとんどの場合、最も高価なプログラミングミスです。コードの量を倍増させると、保守コストが倍増します。なぜあなたはコピーアンドペーストを考えますか?何がそれをいいアイデアのように見せたのですか?コピー&ペーストの背後にある魅力について詳しく説明してください。 –

答えて

4

インポートはあなたがそれを行う方法です。それが可能なのです。パフォーマンスは複雑な質問ですが、一般的には本当に問題にはなりません。パフォーマンスが本当に必要で、基本的なアルゴリズムを修正するだけでは満足できない人は、まずPythonを使用していません。 :)(少なくともパフォーマンスが重要なプロジェクトのごく一部ではない)

+0

これ。あなたは私にそれを打つ。 – nmichaels

1

インポートは、簡単に管理するのに役立ちます。同じ機能が必要な場合はどうすればいいですか?複数の場所で変更するのではなく、モジュールを1つにまとめるだけです。

機能が小さく、どこにも必要でない場合は、ファイル自体に入れてください。

複雑で再度使用する必要がある場合は、それを分けてモジュールの中に入れます。

ここではパフォーマンスを心配するべきではありません。それは重要ではありません。そしてそれがあっても、あなた自身に尋ねなさい - それはあなたにとって重要なのでしょうか?

+0

"同じ機能が再び必要な場合はどうなりますか?「正確には、しかしもっと重要なのは、もしあなたがすでにいくつかの場所でそれを使用しているならば、あなたはバグを見つけたでしょうか?もしあなたが物事を正しく整理すれば、一度修正すればよいでしょう。 –

+0

はい、そうだ。 – user225312

0

Copy/Pasteは、これより優れているわけではありません。インポートは、実行時ではなく、ロード時のパフォーマンスに影響します(トップレベルでインポートする場合)。

0

インポートの全ポイントは、コードの再利用と編成を可能にすることです。

あなたが唯一のモジュールの一部ことを参照する必要があるときのために、ファイル全体または

from MyModule import MyFunction 

を取得するために、どちらか

import MyModule 

を行うことができますあまりにも覚えておいてください。

0

一般的な機能を除いて2つのモジュールが無関係な場合は、その機能(およびその機能に関連する他の機能)を第3のモジュールに抽出することを検討してください。

関連する問題