lnlidawei

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

[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.  问题】

image

 

 

【2.  分析】

 

 

image

image

 

image

 

image

 

image

 

image

 

image

 

 

【3.  回答】

 

image

 

image

 

image

 

image

 

image

 

image

 

image

 

image

 

 

 

 三、应用实例

[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

 

  .

posted on 2026-01-02 16:38  lnlidawei  阅读(1)  评论(0)    收藏  举报