python中的模块与包详解

news2025/2/7 0:08:17

目录

一.什么是模块

二.模块的导入

1.import 模块名

 2.from 模块名 import 功能名

 3.from 模块名 import *

 4.as定义别名

 模块导入总结

三.自定义模块

制作自定义模块

 用pycharm演示

 测试模块_ _main_ _变量的作用

演示

 ‘_ _all_ _’变量

 自定义模块小结

 四.python中的包

什么是包

 包的作用与创建

利用pycharm演示

 注意

导入包

方法一

 方法二

 python包的总结

第三方包及安装方法

1.什么是第三方包?有什么作用?

2.如何安装?


 

一.什么是模块

Python模块(Module),是一个 Python文件,以.py结尾. 模块能定义函数,类和变量,模块里也能包含可执行的代码.

模块的作用:

python中有很多各种不同的模块,每一个模块都可以帮助我们快速的实现一些功能,比如实现和时间相关的功能就可以使用time模块我们可以认为一个模块就是一个工具包,每一个工具包中都有各种不同的工具供我们使用进而实现各种不同的功能.

简单的说:模块就是一个Python文件,里面有类、函数、变量等,我们可以拿过来用(导入模块去使用)

二.模块的导入

模块在使用前需要先导入导入的语法如下:

[from模块名] import [模块|类│变量│函数│*] [as别名]

常用组合如:

  • import模块名
  • from模块名 import 类、变量、方法等
  • from模块名 import *
  • import模块名 as 别名
  • from模块名 import 功能名 as 别名

1.import 模块名

基本语法:

import模块名
import模块名1,模块名2
块名.功能名()

演示:导入time模块

 

 2.from 模块名 import 功能名

基本语法

from模块名import 功能名
功能名()

演示:导入time模块中的sleep方法

 

 3.from 模块名 import *

导入模块名中的全部功能

演示

 4.as定义别名

基本语法

 演示

 

 模块导入总结

1.什么是模块?
模块就是一个Python代码文件,内含类、函数、变量等,我们可以导入
进行使用。
2.如何导入模块
[from模块名]import[模块│类│变量│函数│*][as别名]
3.注意事项:

  •  from可以省略,直接import即可
  • as别名可以省略
  • 通过”.”来确定层级关系

三.自定义模块

  • 了解自定义模块并使用
  • 了解_main_变量的作用

制作自定义模块

Python中已经帮我们实现了很多的模块,不过有时候我们需要一些个性化的模块,这里就可以通过自定义模块实现,也就是自己制作一个模块

案例:新建一个Python文件,命名为my _module1.py,并定义test函数

 用pycharm演示

1.新建一个文件

 2.命名

3.定义代码

 

 4.调用

 测试模块_ _main_ _变量的作用

在实际开发中,当一个开发人员编写完一个模块后,为了让模块能够在项目中达到想要的效果,
这个开发人员会自行在py文件中添加一些测试信息,例如,在my_module1.py文件中添加测试代码test(1,1)

 

问题:
此时,无论是当前文件,还是其他已经导入了该模块的文件,在运行的时候都会自动执行`test`函数的调用

解决方法:if _ _name_ _=='_ _main_ _:'

只要在当前那文件夹中调用上述函数,那么其他导入改模块的文件,就不会调用test函数

演示

 在没有用上述函数的时候,调用该模块会把my_test函数也运行出来

 

 调用上述函数,那么其他导入改模块的文件,就不会调用test函数

 ‘_ _all_ _’变量

如果一个模块文件中有`_ _all_ _`变量,当使用`from xxx import *`导入时,只能导入这个列表中的元素

演示

 

 自定义模块小结

1.如何自定义模块并导入?
在Python代码文件中正常写代码即可,通过import、from关键字和导入Python内置模块一样导入即可使用。
2._ _main_ _变量的功能是?
if _ _main_ _== “_ _main_ _”表示,只有当程序是直接执行的才会进入if内部,如果是被导入的,则if无法进入
3.注意事项
不同模块,同名的功能,如果都被导入,那么后导入的会覆盖先导入的

 四.python中的包

基于Python模块,我们可以在编写代码的时候,导入许多外部代码来丰富功能。
但是,如果Python的模块太多了,就可能造成一定的混乱,那么如何管理呢?
通过Python包的功能来管理。

什么是包

从物理上看,包就是一个文件夹,在该文件夹下包含了一个_ _init _ _.py 文件,该文件夹可用于包含多个模块文件从逻辑上看,包的本质依然是模块

 包的作用与创建

当我们的模块文件越来越多时,包可以帮助我们管理这些模块,包的作用就是包含多个模块,但包的本质依然是模块

利用pycharm演示

步骤如下:

  • 新建包`my _package
  • 新建包内模块: ^my _module1”和“my_module2"
  • 模块内代码如下

 

 

 注意

如上图新建包后,包内部会自动创建`__init__.py`文件,这个文件控制着包的导入行为
如果把这个文件删掉,怎么就会变为普通的文件夹

导入包

方法一

或者 from 包名 import 模块名

 

 

 方法二

注意:必须在`_init_.py`文件中添加`_all_= [`,控制允许导入的模块列表

 

 

 python包的总结

1.什么是Python的包?
包就是一个文件夹,里面可以存放许多Python的模块(代码文件),通过包,在逻辑上将一批模块归为一类,方便使用。
2._ _init_ _.py文件的作用?
创建包会默认自动创建的文件,通过这个文件来表示一个文件夹是Python的包,而非普通的文件夹。
3._ _all_ _变量的作用?
同模块中学习到的是一个作用,控制import*能够导入的内容

第三方包及安装方法

1.什么是第三方包?有什么作用?

第三方包就是非Python官方内置的包,可以安装它们扩展功能,提高开发效率。

2.如何安装?

 在命令提示符内:

  • pip install 包名称
  • pip install -i (镜像网址) 包名称

在pycharm内:

 

 ​​​​​​​

 在搜索框内输入包的名称,然后点击下载即可

 

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

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

相关文章

Flink集成Seatunnel

安装包下载 相关包的下载地址 Apache SeaTunnel | Apache SeaTunnel Apache Flink: Downloads 解压(注意下载scala_2.11) tar -zxvf flink-1.13.6-bin-scala_2.11.tgz -C ../module/ Yarn模式部署 环境准备 sudo vi /etc/profile.d/my_env.sh 修…

中国清洁清洗行业等级资质

中国商业企业管理协会清洁服务商专业委员会——“中清委”(以下简称评定单位)承担组织等级清洁清洗服务机构评定工作。 申请资料 (1)专业清洁清洗服务机构等级评定申请表(附录B); (2)法人代表资格证明&#xff1…

小林Coding阅读笔记:操作系统篇之硬件结构,伪共享问题及CPU的任务执行

前言 参考/导流: 小林coding - 2.5 CPU 是如何执行任务的?学习意义 底层基础知识,了解CPU执行过程,让上层编码有效并发问题处理、思考理解调度策略、思想借鉴分析 相关说明 该篇博文是个人阅读的重要梳理,仅做简单参…

Transformer实现以及Pytorch源码解读(一)-数据输入篇

目标 以词性标注任务为例子,实现Transformer,并分析实现Pytorch的源码解读。 数据准备 所选的数据为nltk数据工具中的treebank数据集。treebank数据集的样子如以下两幅图所示: 该数据集中解释变量为若干句完整的句子: 被解释变…

Docker-DockerFile制定镜像

什么是DockerFile? DockerFile是一个用来编写Docker镜像的文本文件,文本内容包含了一条条构建镜像所需要的指令和说明。DockerFile就想要一个脚本文件一样。把我们想要执行的操作放到文本文件里,一键执行。这样我们就可以复用这个DockerFile…

读论文:Learning to Compare: Relation Network for Few-Shot Learning

Abstract 我们提出了一个概念上简单、灵活且通用的少镜头学习框架,其中分类器必须学习识别每个只给出少量示例的新类。我们的方法称为关系网络(RN),从头到尾进行训练。在元学习过程中,它学习学习一个深度距离度量来比较插曲中的少量图像&…

RNA-seq 详细教程:时间点分析(14)

学习内容 了解如何使用 DESeq2 进行时间的分析LRT 使用 LRT 进行 Time course 分析尽管基因表达的静态测量很受欢迎,但生物过程的时程捕获对于反映其动态性质至关重要,特别是当模式复杂且不仅仅是上升或下降时。在处理此类数据时,似然比检验 …

doris入门后遇到的几个问题总结

文章目录1. Access denied for user anonymnull (using password: NO)2. timeout when waiting for send fragments RPC. Wait(sec): 5, host: xxx(ip)3. Failed to initialize JNI: Failed to find the library libjvm.so.4. 从mysql库导出的json文件大于100M时报错5. csv格式…

OA办公系统:颠覆企业办公模式,激活组织潜能打造新模式

企业的生命力在于生存,而想要在竞争日益激烈的市场环境下生存,就必须不断革新自己的内部条件,否则将会在发展的洪流中被社会所淘汰。如今社会的发展正在信息化世界中进行,企业搭建信息化平台是一条必经之道,而OA办公自…

太爽了!看酷开系统帮你沉浸式带娃!

现如今,OTT大屏涉及的线上内容与娱乐方式与日俱增,不仅常规的电视节目、网剧影视能够随心选择,还发展出以大屏为载体的短视频、健身、云游戏等丰富内容。在人们的居家生活走向常态化的当下,更长的开机使用时间自然对电视操作系统的…

codeforces:C. Another Array Problem【分类讨论 + 找规律】

目录题目截图题目分析ac code总结题目截图 题目分析 做cf题目别老想着套算法模版 找规律才是正道,这就是所谓的「思维」 n 2很简单 n > 4: # 肯定有一个最大值,不妨设它的位置在第三个或以后的x# 前两个值经过两次操作,都变为0# 第0…

Vue.js 目录结构

当我们初始化一个项目后目录结构是这样的: 目录解析 目录/文件说明build项目构建(webpack)相关代码config配置目录,包括端口号等。我们初学可以使用默认的。node_modulesnpm 加载的项目依赖模块src这里是我们要开发的目录,基本上要做的事情都…

# 关于“table“中更新传参回填form

关于"table"中更新传参回填form 一、id查询数据库回填form 使用阶段:Javaweb/ssm/Springboot出现场景:jsp页面(el表达式)、thymeleaf页面(thymeleaf表达式,具体使用方法请前往百度)…

Python成求职中最吃香的三大编程语言之一

程序员培训公司 CodinGame 发布的一份开发人员调查报告显示,在开发人员招聘中,拥有 JavaScript、Java 和 Python 三大编程语言技能的开发人员最受招聘经理欢迎。 该报告基于对全球近 15,000 名开发人员和人力资源专业人员的调查。报告显示,每…

【IO流】JAVA基础篇(一)

文章目录一、字节流和字符流的区别1、字节和字符换算关系2、字节、位、二进制之间的关系3、在64位的操作系统中,一个字等于多少字节?4、字节流和字符流区别二、InputStream1、FileInputStream2、FilterInputStream3、ObjectInputStream4、PipedInputStre…

玩客云刷ARMBIAN当服务器过程记录

玩客云的可玩性 1、可以刷成电视游戏盒子的双系统。也可以刷成单独的电视盒子和游戏盒子。不过因为内存有限放不了多少游戏。还是建议用外置SD卡存储游戏比较合适。 2、刷成Armbian linux系统(可以实现docker、可道云、甜糖等多种功能) 3、最后它还可…

jsp+ssm计算机毕业设计风景区管理系统【附源码】

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

生物安全防护实验室建设要点SICOLAB

生物安全实验室(BiosafetyLaboratory),也称生物安全防护实验室(BiosafetyContainmentforLaboratories),是通过防护屏障和管理措施,能够避免或控制被操作的有害生物因子危害,达到生物…

磺丁基醚环糊精盐内水相/桂利嗪/EGF/吲哚美辛-环糊精/黄芩苷β-环糊精包合物脂质体制备

小编今天分享了磺丁基醚环糊精盐内水相/桂利嗪/EGF/吲哚美辛-环糊精/黄芩苷β-环糊精包合物脂质体的研究内容,和小编一起来看! 黄芩苷β-环糊精(β-CD)包合物脂质体: 采用薄膜-超声分散法制备黄芩苷-CD包合物脂质体,并测定脂质体的粒径分布,Zeta电位以及…

灿芯股份冲刺科创板上市:计划募资6亿元,中芯国际、小米为股东

12月19日,灿芯半导体(上海)股份有限公司(下称“灿芯股份”)在上海证券交易所递交招股书,准备在科创板上市。本次冲刺科创板上市,灿芯股份计划募资6亿元,海通证券为其保荐机构。 招股…