現在のディレクトリに__init__.py
というファイルがあります。__init__.pyが実行される状況は?
このファイルが実行される状況の完全なリストが必要です。
最初のケースは
同じディレクトリにscript.py
で書かれ
import __init__
と、このファイルが実行されます。
他の場合はどうなりますか?
現在のディレクトリに__init__.py
というファイルがあります。__init__.pyが実行される状況は?
このファイルが実行される状況の完全なリストが必要です。
最初のケースは
同じディレクトリにscript.py
で書かれ
import __init__
と、このファイルが実行されます。
他の場合はどうなりますか?
__init__.py
ファイルは、それに対応するパッケージをインポートするときに実行されます。ファイルsome_package\__init__.py
はimport some_package
のときに実行されます。サブモジュールをパッケージからインポートすると、パッケージが最初にロードされます。したがってimport aa.bb.cc
は、aa.bb
とaa.bb.cc
をロードする前にaaをロードします(したがってaa/__init__.py
を実行します)。
some_package
というフォルダは、検出可能である必要があります。つまり、sys.path
のいずれかのフォルダに存在する必要があります。これには現在のディレクトリが含まれます。
スクリプトを実行するだけで(python some_script.py
)、同じフォルダにファイル__init__.py
が存在する場合、現在のフォルダはパッケージ自体ではないため、何も意味しません。 (もちろん、パッケージ内に存在するスクリプトを実行する場合は例外です)。
一つ追加:パッケージを実行できるようにするには、__main__.pyファイルを作成することができます](https://stackoverflow.com/questions/4042905/what-is-main-py)) – Nemelis
'import __init__'は本当に奇妙です。たぶんあなたは '輸入したい。として...?その内容を利用するのではなく、モジュールを "実行する"ことは、(インポートに悪影響を及ぼすモジュールが吸う)設計が悪いことを示しています。関数を記述し、( 'from。import main')をインポートして呼び出すことを検討してください。 – Ryan
私はこれを不明瞭にしています。あなたはあなたが書いたくないことを言ってきましたが、何を書こうと思っていますか?あなたはそれを達成したいですか?最小の実例を書くことができますか? – ymbirtt
これは私の質問です:私は__init__をインポートしたくないです、私はそれを自動的に実行します。 – Dims