インポートおよび__init__でのpython

クラスの変数があるモジュール|階層関係パイソンは、パッケージモジュールであります

次のパッケージが持っている__init__パッケージを呼び出すために、パッケージ形態は、フォルダのある
フォームモジュールの.pyファイルである
モジュールに導入されたとき時にモジュール内のコードが実行されます

モジュールの導入
インポートXX
モジュールパッケージに導入
インポートpackname.modulename
モジュール変数に導入された
モジュール名がインポートから
モジュールの変数複数に導入された
モジュール名は、Bをインポートから
ケースラップ場合の
モジュール名からインポートを\
B(推奨されません)
モジュール名からのインポート(A、
B、...)(推奨括弧)

#导入t包下的所有模块
from t import *
#导入t包下c4模块下的所有变量
from t.c4 import *

上の __init__

彼らは通常のinit初期化中にいくつかのパッケージやモジュールを行います
パッケージがされたときに__init__定義された__all__*モジュールのリスト外のパッケージ・モジュールの導入から導入されることはありませんときに

package t
__all__ = ['c4']
from t import *
print(c4.a)
print(c5.a)


d:\PythonStudy\seven>python c2.py
1
Traceback (most recent call last):
  File "c2.py", line 4, in <module>
    print(c5.a)
NameError: name 'c5' is not defined

上の__all__

場合、モジュール定義

__all__ = ['a','c']
a = 1
b = 2
c = 3

その後、別のモジュール*方法を導入する際に、リスト以外の変数を導入していません

from t.c4 import *
print(b)

d:\PythonStudy\seven>python c2.py
aaaaaaa
Traceback (most recent call last):
  File "c2.py", line 2, in <module>
    print(b)
NameError: name 'b' is not defined
公開された65元の記事 ウォンの賞賛3 ビュー50000 +

おすすめ

転載: blog.csdn.net/web_orange/article/details/78123553