だから私は他の質問に対するアレックス・マーテリの答えを読んでいます...
「初期化が必要な例の 1 つは、パッケージのロード時に大量のデータを (ファイル、DB、または Web などから) 一度だけ読み込みたい場合です。その場合は、はるかに優れています。個別の「初期化モジュール」を用意するのではなく、その読み取り値をパッケージのinit .py のプライベート関数に入れ、パッケージ内のすべての実際のモジュールからそのモジュールを冗長にインポートする...」
残念ながら、これを試すと:
foo/__init__.py
import tables as tb
global foo
foo = tb.openFile('foo.h5', etc._)
import bar
フー/バー/__init__.py
import tables as tb
global bar
bar = foo.createGroup('/', bar)
import MyFunction`
foo/バー/MyFunction.py
def MyFunction(*of foo and bar*):
'...'
>>> import foo
>>> OUTPUT= foo.bar.MyFunction.MyFunction(INPUT)
>>> bar = foo.createGroup('/', bar)
NameError: name 'foo' is not defined
関数に入れずにグローバル変数を定義するにはどうすればよいですか (ここで見られるように)?