1

次の構造でパッケージを作成しました。

test.py
pakcage1/
    __init__.py
    module1.py
    module2.py

test.pyファイルで、コードを使用して

from package1 import *

私がそれをしたいのは

from numpy import *
from module1 import *
from module2 import *

__init__.pyこれを達成するには、ファイルに何を書く必要がありますか?

現在、私__init__.pyが持っているファイルに

from numpy import *
__all__ = ['module1','module2']

これは私が望んでいたものを私に与えません。このように numpy はまったくインポートされず、モジュールは次のようにインポートされます

import module1

それよりも

from module1 import *
4

2 に答える 2

4

これが必要な場合は、__init__.py必要なものだけを含める必要があります。

from numpy import *
from module1 import *
from module2 import *

を実行するfrom package import *と、パッケージの で定義されたすべての名前がインポートされます__init__.py

インポートするモジュール間に名前の衝突がある場合、これは厄介になる可能性があることに注意してください。これらのモジュールの関数に簡単にアクセスしたい場合は、代わりに次のようなものを使用することをお勧めします。

import numpy as np
import module1 as m1
import module2 as m2

つまり、モジュール (内容ではない) をインポートしますが、短い名前でインポートします。その後、 のようなものを使用して numpy のものに引き続きアクセスできますnp.add。これにより、3 文字の入力のみが追加されますが、異なるモジュール間での名前の衝突を防ぐことができます。

于 2013-04-27T19:32:23.610 に答える