自己怎么用h5做网站手机钓鱼网站生成器
目录
- Python中 包(package) 与 模块(module) 的概念
 - 一. Python中, 包 (package) 与 模块 (module) 的概念
 - 1. 一个有 `__init__.py` 文件 的目录, 被视为一个 Python 的 包 (package)
 - 2. 一个Python源文件 , 被视为一个模块 (module)
 
- 二. 不同包之间 以及 同一个包的不同模块之间的导入问题
 - 1. 同级目录下不同包之间的导入问题
 - 2. 同一个包的不同模块之间的导入问题
 
Python中 包(package) 与 模块(module) 的概念
一. Python中, 包 (package) 与 模块 (module) 的概念
1. 一个有 __init__.py 文件 的目录, 被视为一个 Python 的 包 (package)
 
一个包可以有多个模块(Python源文件), 即包所在目录下可以有多个Python源文件, 每个Python源文件都是一个Python模块
2. 一个Python源文件 , 被视为一个模块 (module)
二. 不同包之间 以及 同一个包的不同模块之间的导入问题
正确导入方式:
- 同目录下的不同包之间的导入方式:
import <pkg> 或: from <pkg> import <module> 或: from <pkg>.<module> import <*> | <export-item> - 同一个包的不同模块之间的导入
# 导入同级目录其他模块: from .<other_module> import <*> | <export-item># 导入上级目录中的模块: from ..<other_module> import <*> | <export-item># 导入下级目录中的模块: from <directory>.<other_module> import <*> | <export-item> 
注意:
- 不能使用使用
来导入同级目录下的其他package;import .xxx 或 import ..xxx 或 from .xxx import yyy 或 from ..xxx import yyy - 同一个package不同module 之间, 不能用 
import xxx的方式导入, 只能用from xxx import yyy的方式导入 
1. 同级目录下不同包之间的导入问题
# 1. 同级目录下的package之间, 可以使用下列方式进行导入:
# 下面是项目的目录结构:
WorkDirectory/				# 项目根目录 (也是python命令运行的工作目录)
|   main.py					# 测试文件, 程序执行入口所在文件
|
+---pkg1					# 模块一
|       a.py
|       __init__.py
|
\---pkg2					# 模块二b.py__init__.py# 执行:
# 1. cd 到WorkDirectory目录
# 2. 执行: python .\main.py###################################################################
b.py 文件源码:
def b_method():print('this is pkg2 (package), module b')a.py 文件源码:
# import pkg2.b
# from pkg2 import b
from pkg2.b import b_method
def a_method():print('this is pkg1 (package), module a')# pkg2.b.b_method() # 对应: import pkg2.b# b.b_method()      # 对应: from pkg2 import bb_method()          # 对应: from pkg2.b import b_methodmain.py 文件源码: 
# import pkg1.a
# from pkg1 import a
from pkg1.a import a_methodif __name__ == "__main__":# pkg1.a.a_method() # 对应: import pkg1.a# a.a_method()        # 对应: from pkg1 import aa_method()          # 对应: from pkg1.a import a_metho 
2. 同一个包的不同模块之间的导入问题
# 2. 同一个package内部不同模块之间的导入
# 下面是项目的目录结构:
WorkDirectory/			# 项目根目录 (也是python命令运行的工作目录)
│  main.py				# 
│
└─module1a.pyb.py__init__.py# 执行:
# 1. cd 到WorkDirectory目录
# 2. 执行: python .\main.py######################################################################
b.py 源文件代码:
def b_method():print('this is module b, method b_method()')a.py 源文件代码:
from .b import b_method
# from b import b_method # ModuleNotFoundError: No module named 'b'def a_method():print('this is module a, method a_method()')b_method()main.py 源文件代码:
# import module1.a
from module1.a import a_methodif __name__ == "__main__":# module1.a.a_method()  # 对应: import module1.aa_method()  # 对应: from module1.a import a_method
