[python3]:包和模块的创建、管理及应用
一、说明
1. 本文非原创,来自于网络内容的整理。
2. 包:含有文件“__init__.py”的文件夹,叫做包。该文件夹的名字,就是该包的名字。
3. 模块:文件形式如“xx.py”,叫做模块。该文件的名字,就是该模块的名字。
4. 重点说明(注意:from关键词后面的【 . 】):
---- 包级别文件"__init__.py"的配置
---- 直接导入子包的项目(项目包括:函数,变量,类等)(需要子包的__init__.py文件,进行特殊配置)
---- from .package_name import item1, ..., itemN
---- 实例: from .raw import test_mod_raw
---- 导入子模块的项目(项目包括:函数,变量,类等)
---- from .module_name import item1, ..., itemN
---- 实例: from .raw import test_mod_raw
---- 包配置的测试用例
[wit@ubuntu:dltv1]$ cat test_sh_v1
#!/usr/bin/python3
from libdlt import test_mod_raw
test_mod_raw()
[wit@ubuntu:dltv1]$
[wit@ubuntu:dltv1]$
[wit@ubuntu:dltv1]$ ./test_sh_v1
[test_module_raw]# libdlt.base.raw.test_mod_raw()
[wit@ubuntu:dltv1]$
二、问答
【1. 问题】

【2. 分析】







【3. 回答】








三、应用实例
[wit@ubuntu:dltv1]$ tree
.
├── libdlt
│ ├── base
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ └── raw.cpython-313.pyc
│ │ └── raw.py
│ ├── data
│ │ └── __init__.py
│ ├── __init__.py
│ └── __pycache__
│ └── __init__.cpython-313.pyc
└── test_sh_v1
6 directories, 8 files
[wit@ubuntu:dltv1]$
[wit@ubuntu:dltv1]$
[wit@ubuntu:dltv1]$ cat libdlt/base/raw.py
def test_mod_raw():
print(f"\t[test_module_raw]#\tlibdlt.base.raw.test_mod_raw()")
[wit@ubuntu:dltv1]$
[wit@ubuntu:dltv1]$
[wit@ubuntu:dltv1]$ cat libdlt/base/__init__.py
# from module_raw import function_test_mod_raw()
from .raw import test_mod_raw
[wit@ubuntu:dltv1]$
[wit@ubuntu:dltv1]$
[wit@ubuntu:dltv1]$ cat libdlt/__init__.py
# from package_base import func_test_mod_raw()
from .base import test_mod_raw
[wit@ubuntu:dltv1]$
[wit@ubuntu:dltv1]$
[wit@ubuntu:dltv1]$ cat test_sh_v1
#!/usr/bin/python3
from libdlt import test_mod_raw
test_mod_raw()
[wit@ubuntu:dltv1]$
[wit@ubuntu:dltv1]$
[wit@ubuntu:dltv1]$ ./test_sh_v1
[test_module_raw]# libdlt.base.raw.test_mod_raw()
[wit@ubuntu:dltv1]$
[wit@ubuntu:dltv1]$
四、包和模块的导入
1. 从【包】中导入【子包】:
---- from 【package_name】 import 【sub_package_name】
2. 从【包】中导入【模块】:
----- from 【package_name】 import 【module_name】
3. 从【模块】中导入【项目】
---- from 【module_name】 import 【items】
---- 说明: items = func, var, class, sub_package_name, module_name
4. 从【包-模块混合模式】中导入【项目】
---- from 【package_name.module_name】 import 【items,...】
---- 说明: items = func, var, class, sub_package_name, module_name
五、参考资料
1. chat.baidu.com
.
本文由 lnlidawei 原创、整理、转载,本文来自于【博客园】; 整理和转载的文章版权归属【原创作者】; 转载或引用时【请保留文章的来源信息】:https://www.cnblogs.com/lnlidawei/p/19432294

浙公网安备 33010602011771号