1

scipy / numpyと同様の構造のパッケージがあり、いくつかのメインサブモジュールがあり、各サブモジュールには、同じ名前空間にフラット化されたさまざまなファイルの関数が含まれています。まあ言ってみれば

package/
  sub1/
    __init__.py
    file1.py
    file2.py

そして、sub1/__init__.py次のようになります。

from .file1 import func1, func2
from .file2 import func3

結果は私ができるということです

import package.sub1
package.sub1.func1()

ただし、問題は、以下が機能しないことです。

>>> import package.sub1
-- change things in file1.py --
>>> reload(package.sub1)

関数は更新されません。代わりに実行すると機能するimport package.sub1.file1ため、名前空間をフラット化すると、モジュールへの接続が失われます。reload私の主な質問は、兄弟関数を別々のファイルに書き込むことができるという利点を享受しながら、コマンドをどのように使用できるかということです。

4

1 に答える 1

3

__init__.pyインポート時にインポートするファイルをリロードします。

import file1
import file2
reload(file1)
reload(file2)

func1, func2 = file1.func1, file1.func2
func3 = file2.func3

reload()とは言うものの、それを避けることができれば、頼ることは一般的に悪い考えです。

于 2012-10-04T02:27:17.107 に答える