問題タブ [python-import]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
268 参照

python - コードで定義されていないクラスをPythonで呼び出すにはどうすればよいですか?

ここにすべてのコードを貼り付けることができるかどうかはわかりませんが、この git repoのコードを見ています。

例を見ると、次のようになります。

EC2...しかし、クラスはありません。ただし、 を にマップするlibcloud\providers.pydict があるように見えます。によって正しいマッピングが計算されますが、そのメソッドはどこにも呼び出されていないようです。EC2EC2NodeDriverlibcloud\drivers\ec2.pyget_driver(provider)

私は明らかにPythonは初めてですが、プログラミングは初めてです。これを理解するためにドキュメントで何を調べるべきかさえわかりません。

0 投票する
2 に答える
1526 参照

python - 別のパスからインポートされた場合、モジュールが再インポートされました

私が取り組んでいる大きなアプリケーションでは、複数の人が同じモジュールを異なる方法でインポートします。たとえば、インポートxまたはyからインポートxの副作用は、xが2回インポートされ、誰かがグローバル属性に依存している場合、非常に微妙なバグを引き起こす可能性があります

たとえば、mymodule.py、 main.py 、 init.pyの3つのファイルを持つパッケージmypakcageがあるとします。

mymodule.pyの内容

main.pyの内容

印刷します

2つの異なるモジュールに2つのリストがあるため、同様にクラスAは異なります。クラス自体が異なる方法で処理されるため、私には十分に深刻に見えます。たとえば、以下のコードはFalseを出力します。

質問:

これを回避する方法はありますか?ただし、モジュールを一方向にインポートする必要があります。これをPythonインポートメカニズムで処理することはできません。djangoコードやその他の場所でも、これに関連するいくつかのバグが見られます。

0 投票する
1 に答える
118 参照

django - Django スタートアップのインポートにより逆が発生する

これは孤立した問題かもしれませんが、誰かがそれに対処するための優雅なアプローチについて考えている場合に備えて質問したいと思います。

セットアップは次のとおりです。

問題は、django が URL の構築を完了する前にリバースを試行すると、shortcuts.py によって例外がスローされることです。ただし、views.py はまだ Shortcuts.py をインポートする必要はありません (mood_dispatcher が実際に呼び出される場合にのみ使用されます)。明らかな初期の解決策は次のとおりです。1) ショートカットをインラインでインポートする (スタイル的にあまり良くない) 2) Shortcuts.py で MOODS を遅延ビルドする (作業が増えるだけ)

私が理想的に望むのは、views.py の上部で、「URL の読み込み時以外はショートカットをインポートする」と言うことができることです。

0 投票する
7 に答える
79689 参照

python - Python での循環インポートの依存関係

次のディレクトリ構造があるとします。

aパッケージのに__init__.pycパッケージがインポートされます。しかし、c_file.pyインポートしa.b.dます。

をインポートしようとすると、b存在しないと言ってプログラムが失敗します。(そして、インポートの途中だったので、実際には存在しません。)c_file.pya.b.d

この問題はどのように解決できますか?

0 投票する
6 に答える
39338 参照

python - Pythonのローカルインポートステートメント

importステートメントをそれを使用するフラグメントの近くに配置すると、依存関係がより明確になり、読みやすくなると思います。Pythonはこれをキャッシュしますか?気にする必要がありますか?これは悪い考えですか?

もう少し正当化:ライブラリの難解なビットを使用するメソッドの場合ですが、メソッドを別のファイルにリファクタリングすると、実行時エラーが発生するまで外部依存関係を見逃したことに気づきません。

0 投票する
4 に答える
13369 参照

python - PyDevエディターにエラーを選択的に無視させるにはどうすればよいですか?

EclipseでPyDevを使用して、Jythonコードを記述しています。私はこのようなことをする必要がある多くの例を持っています:

問題は、PyDevが常にこれをエラーとしてフラグを立て、「未解決のインポート:ISubInterface」と言うことです。コードは問題なく機能します。コードの横にこれらの小さな白/赤のXマークを付けたくないだけで、[問題]タブにこれらのエラーが散らばっています。

「#pylint:disable-msg = E1101」のようなコメントを振りかけてPyLintを無視させるのと同様に、マジックコメントなどを行の最後に追加してPyDevに誤ったエラーを無視させる方法はありますか?エラー?

また、JythonでJavaインターフェイスを使用する場合、私が間違っている可能性があります。その場合、少しのガイダンスをいただければ幸いです。

0 投票する
3 に答える
17664 参照

python - Python(およびDjango)のベストインポートプラクティス

コードをインポートするさまざまな方法のうち、他の方法と比較して使用するのが好ましい方法はありますか?このリンクhttp://effbot.org/zone/import-confusion.htmは、簡単に言うと次のように述べています。

通常の状況で、または何をしているのかわからない場合を除いて、MyClassをインポートするための推奨される方法ではありません。(むしろ、より良い方法は次のようになります:

次に、コードでMyClassにアクセスするには

)。

要するに、上記のリンクは、モジュールの一部だけでなく、モジュールからすべてをインポートする方が通常は良いと言っているようです。

しかし、私がリンクしたその記事は本当に古いものです。

また、少なくともDjangoプロジェクトのコンテキストでは、モジュール全体ではなく、使用するクラスのみをインポートする方がよいと聞きました。このフォームは、循環インポートエラーを回避するのに役立つか、少なくともdjangoインポートシステムの脆弱性を軽減すると言われています。Django自身のコードは、「importx」よりも「fromximporty」を好むようであることが指摘されました。

私が取り組んでいるプロジェクトが__init__.py...の特別な機能を使用していないと仮定すると(すべての__init__.pyファイルが空です)、どのインポート方法を優先する必要がありますか、またその理由は何ですか?

0 投票する
5 に答える
95980 参照

python - Pythonパッケージの一部であるすべてのモジュールを一覧表示しますか?

Pythonパッケージの一部であるすべてのモジュールを見つける簡単な方法はありますか?私はこの古い議論を見つけましたが、これは実際には決定的なものではありませんが、os.listdir()に基づく独自のソリューションを展開する前に、明確な答えが欲しいです。

0 投票する
9 に答える
52148 参照

python - Python:「from X import Y」でインポートされたコンポーネントYをリロードしますか?

Python では、 を使用してインタープリター セッションでモジュール X をインポートするimport Xと、モジュールが外部で変更され、モジュールを でリロードできますreload(X)。その後、通訳セッションで変更が利用可能になります。

を使用してモジュール X からコンポーネント Y をインポートするときに、これも可能かどうか疑問に思っていますfrom X import Y

reload YY はモジュール自体ではなく、モジュール内のコンポーネント (この場合はクラス) にすぎないため、ステートメントは機能しません。

インタープリター セッションを終了する (またはモジュール全体をインポートする) ことなく、モジュールの個々のコンポーネントを再読み込みすることはまったく可能ですか?

編集:

明確にするために、質問は、パッケージ X からのモジュール Y ではなく、モジュール Xからクラスまたは関数 Yをインポートし、変更をリロードすることです。

0 投票する
5 に答える
4793 参照

python - `importmodule`は`frommodule import function`よりも優れたコーディングスタイルですか?

from module import functionFMIFコーディングスタイルと呼びましょう。

import moduleIMコーディングスタイルと呼びましょう。

from package import moduleFPIMコーディングスタイルと呼びましょう。

IM + FPIMがFMIFよりも優れたコーディングスタイルと見なされるのはなぜですか?(この質問のインスピレーションについては、この投稿を参照してください。)

IMよりもFMIFを好むようになるいくつかの基準は次のとおりです。

  1. コードの短さ:短い関数名を使用できるため、1行あたり80列の規則に従うことができます。
  2. 読みやすさ:chisquare(...)より読みやすいように見えます scipy.stats.stats.chisquare(...)。これは主観的な基準ですが、ほとんどの人が同意すると思います。
  3. リダイレクトのしやすさ:FMIFを使用していて、後で何らかの理由でPythonをリダイレクトして定義するのfunctionではalt_moduleなく、module1行だけ変更する必要がある場合:from alt_module import function。IMを使用する場合は、コードの多くの行を変更する必要があります。
FPIMが最初の2つの問題を無効にする方法があることはわかっていますが、3番目の問題はどうでしょうか。

IM + FPIMがFMIFよりも優れている理由はすべて興味がありますが、特に、ここで説明する次の点について詳しく説明したいと思います。

IMの長所:

  1. テストでのモック/注入の容易さ。(私は最近、この用語の意味を学びましたが、モックについてはあまり詳しくありません。ここで、IMがFMIFよりも優れていることを示すコードを示していただけますか?)
  2. 一部のエントリを再定義することにより、モジュールを柔軟に変更する機能。(これはIMに対するFMIFの利点のように思われるため、私は何かを誤解しているに違いありません。上記のFMIFを支持する私の3番目の理由を参照してください。)
  3. データのシリアル化とリカバリに関する予測可能で制御可能な動作。(IMまたはFMIFの選択がこの問題にどのように影響するかは本当にわかりません。詳しく説明してください。)
  4. FMIFが「私の名前空間を汚染する」ことは理解していますが、否定的な言い回しであるだけでなく、これがコードを具体的にどのように傷つけるかについては理解していません。
PS。この質問を書いているときに、質問が主観的であり、閉じられる可能性が高いという警告を受け取りました。閉じないでください。私は主観的な意見を探しているのではなく、IM+FPIMがFMIFよりも明らかに優れている具体的なコーディング状況を探しています。

どうもありがとう。