061、Python 包:模块管理

news2024/12/23 13:51:43

包(Package)是一种用于组织模块的层次结构。包实际上就是一个包含了__init__.py文件的目录,该文件可以为空或包含包的初始化代码。通过使用包,可以更好地组织和管理大型项目中的模块,避免命名冲突,并提高代码的可维护性。

1、创建包:

(1)、假如存在一个文件夹,我们可以直接把它转换为包文件。通过右键文件夹–>Mark Directory as–>Namespace Package即可转换,如下图:

请添加图片描述

(2)、直接通过New–>Python Package新建一个包,如下图所示:

请添加图片描述

(3)、创建了包文件后,我们可以添加一个__init__.py文件,可以留空,也可以包含初始化代码。该文件代码在引用包的时候会先调用。

(4)、然后我们就可以把要组织的模块放入到包的目录中。

(5)、包的基本结构如下:

my_package/
    __init__.py
    module1.py
    module2.py

2、导入包和模块:

  • 导入包:使用import语句导入包,如:

    import my_package
    
  • 导入模块:使用fromimport关键字导入包中的特定模块如:

    from my_package import module1
    
  • 导入包中特定模块中函数:使用.操作符,如:

    from my_package.module1 import some_function as fun1
    

3、包的优点和注意事项:

(1)、包的优点

  • 组织性:包可以更好地组织和管理大型项目中的模块。
  • 避免命名冲突:包可以避免不同模块之间的命名冲突。
  • 可维护性:通过使用包,更容易地维护和扩展代码。

(2)、注意事项:

  • 包名应该是唯一的,避免与其他包重名。
  • 包目录中的__init__.py文件可以为空,也可以包含初始化代码。
  • 在Python 3.3及以后的版本中,__init__.py文件不再是必需的,但仍然推荐在包目录中包含该文件。

  • 在Python 3.3及以后的版本中,__init__.py文件不再是必需的,但仍然推荐在包目录中包含该文件。

总结:做工程化项目开发时,如果项目的代码文件非常多,那么我们就可以通过“包”来管理“模块”,然后再通过“模块”来管理函数。Python中的fromimportas关键字就是专门用来处理包和模块导入操作的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1836173.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全网最全 Kimi 使用手册,看完 Kimi 效率提升 80%

在当前AI文字大模型领域,ChatGPT4.0无疑是最强大。然而,最近最火爆的大模型非国产Kimi莫属。 相较于其它大模型,Kimi 最大的优势在于,超长文本输入,支持200万汉字,是全球范围内罕见的超长文本处理工具&…

孟德尔随机化R包:TwoSampleMR和MR-PRESSO安装

1. 孟德尔随机化R包 看一篇文章,介绍孟德尔随机化分析,里面推荐了这两个R包,安装了解一下: Methods:Genome-wide association study (GWAS) data for autoimmune diseases and AMD were obtained from the IEU Open GWAS databas…

vue中通过自定义指令实现一个可拖拽,缩放的弹窗

效果 功能描述 按住头部可拖拽鼠标放到边框,可缩放多层重叠丰富的插槽,易于扩展 示例 指令代码 export const dragDialog {inserted: function (el, { value, minWidth 400, minHeight 200 }) {// 让弹窗居中let dialogHeight el.clientHeight ?…

在Linux系统中安装凸语言

凸语言在2023国产编程语言蓝皮书中的介绍如下: 凸语言gitee页面:凸语言: tu-lang 是一种动态类型编译型的通用编程语言, 已实现自举 (gitee.com) 使用git克隆源码: git clone https://github.com/tu-lang/tu.git 安装凸语言环境&#xff1a…

1.4k star 项目 CMakeTutorial 阅读和点评

1.4k star 项目 CMakeTutorial 阅读和点评 文章目录 1.4k star 项目 CMakeTutorial 阅读和点评0. 概要1. CUDA 目录2. FindPackage 目录3. Installation 目录4. PackageManage 目录5. PythonExtension 目录6. ImportExternalProject 目录总结 0. 概要 在 github 搜索关键字 CM…

【ARMv8/ARMv9 硬件加速系列 2.4 -- ARM NEON Q寄存器与V寄存器的关系】

文章目录 Q 与 V 的关系向量寄存器 v 的使用赋值操作寄存器赋值总结Q 与 V 的关系 在ARMv8/v9架构中,v寄存器和q寄存器实际上是对相同的物理硬件资源的不同称呼,它们都是指向ARM的SIMD(单指令多数据)向量寄存器。这些寄存器用于高效执行向量和浮点运算,特别是在多媒体处理…

03-ES6新语法

1. ES6 函数 1.1 函数参数的扩展 1.1.1 默认参数 function fun(name,age17){console.log(name","age); } fn("张美丽",18); // "张美丽",18 fn("张美丽",""); // "张美丽" fn("张美丽"); // &…

‘引爆增长·赋能十堰’第一届学习峰会在十堰东方汉宫国际酒店成功举办

‘引爆增长赋能十堰’第一届学习峰会在十堰东方汉宫国际酒店成功举办 2024年6月 17 至18 日,为期两天的“引爆增长赋能十堰”第一届学习交流峰会在湖北十堰东方汉宫国际酒店一号盛大举行,学习峰会现场,来自十堰地区及邻边地市的上百位实体企业…

网络基础

文章目录 网络发展协议网络分层结构局域网通信IP地址和MAC地址 网络发展 独立模式: 计算机之间相互独立 ; 网络互联: 多台计算机连接在一起, 完成数据共享因为人和人之间数据要互相协作,所以网络的出现是必然的,同时随着网络发展,必然会产生…

yt-dlp:强大的跨平台视频下载器

一、引言 在当今数字时代,视频已成为我们获取信息和娱乐的重要途径。然而,由于版权和网络限制,我们常常无法直接在本地保存我们喜爱的视频。幸运的是,有一个名为yt-dlp的命令行程序,它可以帮助我们从YouTube.com和其他…

NoSQL-Tidis支持分布式事务,兼容redis协议,使用tikv存储引擎,可水平扩展

项目repo地址 GitHub - yongman/tidis: Distributed transactional NoSQL database, Redis protocol compatible using tikv as backend Tidis是分布式数据库,支持redis协议,多种数据结构支持,编写语言为golang。 Tidis工作角色类似于TIDB,提供协议转换和数据结构计算,底…

Jenkins教程-3-github自动化测试任务构建

上一小节我们学习了Jenkins在windows和mac系统上安装搭建环境的方法,本小节我们讲解一下Jenkins构建github自动化测试任务的方法。 接下来我们以windows系统为例,讲解一下构建实际自动化测试任务的具体步骤。 安装git和github插件 点击进入Jenkins插件…

自杀行为的神经生物学认识

自杀行为的神经生物学认识 编译 李升伟 隐藏在自杀行为背后的大脑生化机制正引领人类对自杀的认识从黑暗步入光明。科学家希望未来这些机制能带来更好的治疗和预防策略。 基斯 • 范希林根(Cornelis Van Heeringen)第一次遇见瓦莱丽( Va…

dmhs同步因目的端表自增列报错解决方法

dmhs同步因目的端表自增列报错解决方法 1 dmhs copy 装载数据时报错 HY000 CODE:-27232 配置源端捕获器cpt 1 dmhs copy 装载数据时报错 HY000 CODE:-2723 ERR:Only if specified in the column list and SET IDENTITY INSERT is ON, then identity column could be assigned …

04-对原生app应用中的元素进行定位

本文介绍对于安卓原生app应用中的元素如何进行定位。 一、uiautomatorviewer uiautomatorviewer是Android-SDK自带的一个元素定位工具,非常简单好用,可以使用该工具查看app应用中的元素属性,帮助我们在代码中进行元素定位。 1)使…

oracle12c到19c adg搭建(三)oracle19c数据库软件安装

由于这里的19c是做备库所以我们只安装软件不用创建实例,实例由主库同步过来 解压软件到安装目录 注意19c得db要直接解压到19c得软件安装目录 [rooto12u19p software]# ls V982063-01.zip [rooto12u19p software]# ls -ll total 2987996 -rw-r--r-- 1 root ro…

第二证券:英伟达“利空”?!黄仁勋逢高又卖超2亿

时隔9个月,黄仁勋再次套现英伟达,股价小幅下跌。 当地时间6月17日周一,美股三大股指全线收涨。到收盘,道指涨0.49%,纳指涨0.95%,标普500指数涨0.77%。 英伟达CEO黄仁勋时隔9个月再度出售英伟达股票。最新…

netty服务端与客户端的启动流程

如图所示,右侧是服务端Server,左侧是客户端Client 要点说明: 1.在Server中,在NioEventLoopGroup()中,会有1个selector和线程在不断循环,等待是否有accept事件,在accept事件发生后,才…

所以spring mvc异常处理工作原理是啥

文章目录 spring mvc异常处理(源码分析)概述原理(源码角度)模拟debug前期提要分析4个map4个map的初始化为什么需要基于mappedMethods缓存 总结一下 spring mvc异常处理(源码分析) 概述 spring mvc有下面三…

ubuntu 18.04 安装vnc

如何在Ubuntu 18.04安装VNC | myfreax sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils sudo apt install tigervnc-standalone-server tigervnc-common vncserver sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils sudo apt ins…