一个py文件就是一个模块,py文件可以放到目录结构中。
如果目录结构中包含__init__.py,该目录就构成了一个包。
(1)导入模块
Module1.py
a = 1
Folder/Module2.py
b = 2
Main.py
import Module1
import Folder.Module2
print(Module1.a)
print(Folder.Module2.b)
(2)导入包
Folder/__init__.py
__all__ = ["Module2"]
Folder/Module2.py
b = 2
Main.py
from Folder import *
print(Module2.b)
注:
(1)import
只能导入模块,不能导入变量。
(2)import Package.Module
会导致Package
,Package.Module
两个名字都被导入。
(3)from A import B
, 可以导入模块或者变量。
from Module import variable
,会导入一个变量variable = Module.variable
,但是Module
这个名字没有导入。
from Package import Module
,会导入一个变量Module = Package.Module
, 但是Package
这个名字没有导入。
(4)from Package import *
,
Package
导入的Module
是受Pacakge__init__.py中__all__
变量控制的。