python 自定义包的实现示例

 更新时间:2024年05月13日 11:20:49   作者:yong1585855343  
如果Python的模块过多,可能造成一定的混乱,这时可以通过Python包来管理模块,本文主要介绍了python 自定义包的实现示例,感兴趣的可以了解一下

1. 代码目录

创建自定义包的时候,原理是当 python 检测到一个目录下存在 __init__.py 文件时,python 就会把它当成一个模块(module)。

下面这个例子是网上整理的代码,但是有些小改动,可以直接拿来就用。
看代码结构:

在这里插入图片描述

2. 每个目录的代码

parent 主目录

  • main.py
import sys

# 这一行需要放在最前面,也是最关键
# 将包含parent包的路径添加进系统路径
sys.path.append(r"..")


print('-----开始import-----\n')

import parent.pack2.mod2_1          # 第1种 引用方法
import parent.pack2.mod2_2 as p2m2  # 第2种 引用方法
from parent.pack.mod import *       # 第3种 引用方法

if __name__ == '__main__':
    print('-----开始main-----\n')

    # 第1种 引用的调用方法
    parent.pack2.mod2_1.func()
    # 第2种 引用的调用方法
    p2m2.func()
    # 第3种 引用的调用方法
    func()
    
    #  import 就会把注册在包 __init__.py 文件中 __all__ 列表中的子模块和子包导入到当前作用域中
    print('\npack2包中的模块有:')
    print(parent.pack2.__all__)
  • __init__.py
if __name__ == '__main__':
    print('parent 作为主程序运行')
else:
    print('parent 初始化')

pack 包

a. __init__.py

if __name__ == '__main__':
    print('作为主程序运行')
else:
    print('Pack初始化')

b. config.py

run = 9999

c. mod.py

# mod
def func():
    print('pack.mod.func()')

if __name__ == '__main__':
    print('mod 作为主程序运行')
else:
    print('mod 被另一个模块调用')

pack2 包

a. __init__.py

# Pack2 的 __init__.py

# __all__ 用于当前Pack2包是所包含的模块
__all__ = ["mod2_1", "mod2_2", "mod2_3"]

if __name__ == '__main__':
    print('Pack2作为主程序运行')
else:
    print('Pack2初始化')

b. mod2_1.py

# 这里导入上一级目录下的 pack 下面的 config 文件
from parent.pack  import config

# mod2
def func():
    print('pack2.mod2_1.func()')
    print("config: " + str(config.run))

if __name__ == '__main__':
    print('mod2_1 作为主程序运行')
else:
    print('mod2_1 被另一个模块调用')

c. mod_2.py

# mod2
def func():
    print('pack2.mod2_2.func()')

if __name__ == '__main__':
    print('mod2_2 作为主程序运行')
else:
    print('mod2_2 被另一个模块调用')

代码:

https://gitee.com/zhiyong47/vine/tree/master/effective_codes/parent

到此这篇关于python 自定义包的实现示例的文章就介绍到这了,更多相关python 自定义包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Django配置Mysql数据库连接的实现

    Django配置Mysql数据库连接的实现

    本文主要介绍了Django配置Mysql数据库连接的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Python使用Pandas和Matplotlib按中值对箱形图进行排序

    Python使用Pandas和Matplotlib按中值对箱形图进行排序

    箱形图是可视化数据分布的强大工具,因为它们提供了对数据集内的散布、四分位数和离群值的洞察,在本文中,我们将探索如何在Python中使用Pandas和Matplotlib按中值对箱形图进行排序,需要的朋友可以参考下
    2025-04-04
  • Python超有用的多版本管理工具pyenv

    Python超有用的多版本管理工具pyenv

    使用不同的Python版本,如果我们把需要的不同版本的Python都下载到服务器上,管理起来会非常困难,多版本并存又容易互相干扰,接下来就来介绍一个Python环境管理工具:pyenv,就可轻松的在多个版本的Python之间自由切换,需要的朋友可以参考下
    2021-09-09
  • django删除表重建的实现方法

    django删除表重建的实现方法

    今天小编就为大家分享一篇django删除表重建的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • 利用Python判断你的密码难度等级

    利用Python判断你的密码难度等级

    很多网站在用户注册账号的时候为了保证账户的安全,都会自动检测用户密码的强度并给出提醒让用户设置一个相对安全的密码。这篇文章主要给大家介绍了关于利用Python判断你的密码难度等级,需要的朋友可以参考下
    2021-06-06
  • python中threading超线程用法实例分析

    python中threading超线程用法实例分析

    这篇文章主要介绍了python中threading超线程用法,实例分析了Python中threading模块的相关使用技巧,需要的朋友可以参考下
    2015-05-05
  • Python海龟绘图之绘制趣味简笔画

    Python海龟绘图之绘制趣味简笔画

    大家好,本篇文章主要讲的是Python海龟绘图之绘制趣味简笔画,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • python实现电脑操控安卓手机

    python实现电脑操控安卓手机

    网上虽然有很多教程,但是随着版本的更新总有各种各样的坑,本文以亲身踏坑经历介绍了电脑使用python操控安卓手机,从安装到使用方法,感兴趣的可以了解一下
    2021-05-05
  • python通过paramiko复制远程文件及文件目录到本地

    python通过paramiko复制远程文件及文件目录到本地

    这篇文章主要为大家详细介绍了python通过paramiko复制远程文件及文件目录到本地,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • 复习Python中的字符串知识点

    复习Python中的字符串知识点

    这篇文章主要介绍了Python中字符串的一些知识点,来自于IBM官方网站技术文档,需要的朋友可以参考下
    2015-04-04

最新评论