Python模块和包的介绍(模块含义、用模块好处、模块分类、包和模块的创建)

news2024/12/27 13:04:18

🌈 个人主页:王子玉博客

🔆 免费专栏:Python基础教程、python常用模块

❤️  分享网站: 《Python自学网》👉👉基础入门到逐步深入  |  适合新手入门到精通  | web开发、爬虫、自动化运维、自动化测试、GUI图形界面化 


什么是模块

模块的介绍:

在开发的过程中,随着程序员的代码写的越来越多,导致在一个文件中代码也就会越来越长,从而越长的代码也就不那么容易维护。所以为了编写可维护的代码,我们程序员就把很多函数给分门别类的分组,分别放到不同的文件里,这样每个文件里的代码就相对较少。其实,很多编程语言都是采用这种组织代码的方式,在python中模块也有很多,一个.py的文件就可以称之为一个模块。


使用模块的好处

好处:

  1. 最大好处:大大提高了代码的可维护性。
  2. 编写代码不必从零开始。当一个模块编写完成后,就可以被其他地方引用,其实我们在编写程序的时候也常常引用其他模块,可能包括python内置模块和其他第三方模块。
  3. 使用模块可以避免函数名和变量名冲突。每个模块有独立的命名空间,因此相同名字的函数和变量完全可以分别存在不同的模块中,所以自己在编写模块时,不必考虑名字和其他模块冲突(但是模块名不能相同,千万不能和内置模块或者第三方的同名)

模块的分类

三种模块:

内置模块(标准模块、标准库、内置库等多种叫法):python自带的模块,可能将近300个吧

  • 执行 help(modules) 查看所有python自带模块列表

第三方开源模块: 别人封装的模块供大家使用,全球可能18万个左右吧,想用python做任何事情几乎都能找得到对应模块

  • 可通过  pip install 模块名   联网安装

自定义模块:咱们自己写的


模块和包的概念

在python中一般对文件和文件夹的称呼:

模块:一个.py文件,称之为模块(module)

:含多个.py文件的文件夹,称之为包(package)

注意

在包(文件夹)中有一个默认内容为空的文件。一般用于描述当前包的信息(在导入他下面的模块时,也会自动加载)。

  1. 在python2版本中必须有__init__.py文件,如果没有导入包就会失败
  2. Py3则可有可无
  3. 为了程序能够正常在任何环境中都能运行,建议加上

创建包和模块方式:

在自己项目的文件夹上点击右键鼠标,出现New后鼠标悬浮在上面会出现创建的界面,创建包,直接输入包的名字敲enter键即可。创建模块.py文件也是如此。。

在创建包时,py3会自动给我们创建一个__init__.py文件,然后在这个文件下面创建自己的模块就好。(创建了一个叫mymodule的包,下面有三个模块)

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

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

相关文章

yocto 自动挂载分区(基于stmp32mp1)

yocto 自动挂载分区(基于stmp32mp1) 上一章我们在stm32mp1开发板上实践了创建分区的过程,本节我们再来分析下上小节创建的分区开机时是怎么完成分区的自动挂载的。 答案就在systemd里面: 下面就来详细分析一下这个几个文件 mo…

C/C++入门003-C语言变量与运算符

文章目录变量常量的概念常量的类型变量的概念定义变量为什么要定义变量如何使用变量?变量初始化修改变量变量之间的值传递如何查看变量的值?变量的作用域printf函数scanf函数函数的参数运算符算数运算符赋值运算符sizeof运算符逗号运算符关系运算符逻辑运算符三目运…

攻击类型的攻击次数分布

攻击类型分析 2018 年,主要的攻击类型 1 为 SYN Flood,UDP Flood,ACK Flood,HTTP Flood,HTTPS Flood, 这五大类攻击占了总攻击次数的 96%,反射类攻击不足 3%。和 2017 年相比&…

【Linux网络编程】select多路复用

文章目录前言如何增强服务端的通信能力Linux的设计哲学文件描述符代码讲解以文件方式操作命令行阻塞函数与非阻塞函数轮询select()代码全貌The End前言 我们上节课讲解了服务端的编程(Linux服务端编程初体验) 本节课要讲的是select 提示:以下是本篇文章正文内容&am…

RocketMQ引发的磁盘预警复盘

RocketMQ引发的磁盘预警复盘前言发现问题排查过程Step 1Step 2Step 3Step 4Step 5Step 6Step 7Step 8Step 9解决方式写在最后前言 一款优秀的中间件,参数的缺省值必然是经过反复验证得出的最优解,勿动! 发现问题 某台SaaS服务器磁盘不足发出…

kafka的 __consumer_offsets

Zookeeper不适合大批量的频繁写入操作。Kafka 1.0.2将consumer的位移信息保存在Kafka内部的topic中,即__consumer_offsets主题,并且默认提供了kafka_consumer_groups.sh脚本供用户查看consumer信息。 1、创建topic “tp_test_01” [rootnode1 ~]# kafka…

《Linux运维总结:Centos7.6部署二进制mongodb4.4.8三节点副本集群》

一、Mongodb集群模式 1、三种集群介绍 MongoDB有三种集群部署模式,分别为主从复制(Master-Slaver)、副本集(Replica Set)和分片(Sharding)模式。 1、Master-Slaver 是一种主从副本的模式&#x…

自动驾驶之行人轨迹预测数据集

一、 Real Data ETH: Univ. Hotel;750 pedestrians exhibiting complex interactions UCY: Zara01, Zara02 and Uni.780 pedestrians 单应性矩阵,SLAM中的当用多个不同相机拍摄同一个三维平面需要考虑的矩阵,适应场景为平面情况 商场 这个数据集是用双…

Onvif学习

ONVIF onvif(Open Network Video Interface Forum,开放型网络视频接口论坛)协议. onvif协议涵盖了设备发现、设备配置、事件、PTZ控制、视频分析和实时流媒体直播功能,以及搜索,回放和录像录音管理功能。 先去看许振…

git 常用操作

Git 是一个分布式版本控制系统,用于项目开发中的版本控制。从本质上来讲Git是一个内容寻址(content-addressable)文件系统,并在此之上提供了一个版本控制系统的用户界面。 Git的核心部分是一个简单的键值对数据库(key-value data store)。 你可以向该数据…

XML配置文件、用来约束XML文档:DTD、Schema(类型更多)

上一章properties作为配置文件的内容好像还没讲? properties相对于XML的缺点:如果要运行多个方法,只能在properties配置文件里等号后面加逗号(或指定符号)隔开,然后再加值,这样累加下去会导致阅…

基于分布式数据库集群的大数据职位信息统计

目录 任务一: MongoDB 分布式集群关键配置信息截图(启动参数文件、初始化参数文件、启动命令等) ch0的参数文件配置: ​编辑 ch1的参数文件配置: ​编辑chconfig的参数文件配置: router的参数文件配置…

SpringSecurity整合Oauth2.0

SpringSecurity整合Oauth2.0一、概述与原理1.1 、OAuth2.0 是什么?1.2、OAuth2.0中角色解释1.3、OAuth2.0的4中授权模式1.3.1、授权码模式(重点)1.3.1.1 原理1.3.1.2 代码1.3.2、密码模式(重点)1.3.2.1 原理1.3.2.2 代…

开发运维(DevOps)自动化运维与持续交付企业级实战

一、网站部署流程 1、传统网站部署流程 传统的网站部署,大家在运维过程中,网站部署是运维的工作之一,网站部署的流程大致分为: 需求分析—原型设计—开发代码—提交测试—内网部署—确认上线—备份数据—外网更新-最终测试,如果发现外网部署的代码有异常,需要及时回滚…

[附源码]JAVA毕业设计心理健康系统(系统+LW)

[附源码]JAVA毕业设计心理健康系统(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&…

网络安全观察报告恶意软件观察

攻击类型分析 2018 年,主要的攻击类型 1 为 SYN Flood,UDP Flood,ACK Flood,HTTP Flood,HTTPS Flood, 这五大类攻击占了总攻击次数的 96%,反射类攻击不足 3%。和 2017 年相比&…

使用分页导入的方式把大量数据从mysql导入es

1、首先要有分页功能的代码 如何使用mybatis-plus实现分页,可参考 http://t.csdn.cn/ddnlk 2、要创建feign远程调用模块 可以参考 http://t.csdn.cn/gshFw 3、在feign模块中声明远程调用接口 1.在feign模块中创建一个接口,名字可以是你要调用的服务名&…

指定区域内实现多尺度、多维度2D图形随机填充(如圆、椭圆、多边形)之MATLAB实现

N久之前,咱在公众号中分享了如何用MATLAB实现在指定区域内随机填充圆,并将相关功能封装一个名为randCircle函数里面,其可实现的功能如下: (1) 设定是否允许填充圆相交、相切或独立存在 (2) 指定区域内圆的生成个数 (3) 设定是否允…

[附源码]计算机毕业设计基于vuejs的文创产品销售平台appSpringboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【面试题】说说 Promise是什么?如何使用

大厂面试题分享 面试题库 前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 前言 本文主要介绍和总结Promise的作用、使用方式和其对应的一些方法,供大家参考学习,如有写的不准确的地方欢迎大家指出&a…