-3

私はどこにでも存在する必要があるK pythonファイルを持っています.

これは K^2 負荷になる可能性があるようですが、実際にそれについて考えるのに十分な脳のスペースを解放することができませんでした。

K=4 で a.py,b.py,c.py,d.py があるとしましょう: a.py の最後にある b.py,c.py,d.py からすべてをインポートすることを考えています-および- b.py c.py および d.py は、上部に a.py をインポートするだけです。そして、すべてがすでにその中にあるので、 any.py は a.py をインポートするだけです。

別の方法として、any.py は a.py b.py c.py d.py をインポートしますが、これら 4 つを分離しておくのは難しいです。

4

2 に答える 2

3

すべてのコメントが指摘しているように、これは疑わしい設計であり、あなたや共同編集者/読者を誤解させたり、メンテナンスを困難にしたりする可能性があります.

しかし、それはパフォーマンスの問題ではありません。

同じことで import を複数回呼び出すと、最初の呼び出し後は毎回一定の (そしてほとんどない) 時間がかかります。(デフォルトの) インポート メカニズムはそれを sys.modules で検索し、既にそこにあることを確認して返します。したがって、ここでは O(K^2) は行われません。大丈夫です)。

これは非常に簡単に自分でテストできます。次のファイルを作成します。

# a.py
print('a')
import b
import c

# b.py
import a
print('b')

# c.py
import a
print('c')

次に、Python インタープリターを起動して、次のようにします。

>>> import a
a
b
c
>>> import b
>>> import a

printインポーターは最初の 2 回目以降ステートメントに到達しないため、各アイテムは 1 回だけ表示されます。

于 2013-03-29T22:54:15.933 に答える
2

これは基本的にパッケージの目的です。すべての Python ファイルをディレクトリに配置し、__init__.pyそれらをすべてインポートする を追加すると、そのディレクトリを Python モジュールとしてインポートできます。

于 2013-03-29T22:58:13.880 に答える