Python学习笔记-模块

news2024/11/26 14:45:59

目录

一、模块的概念

二、自定义模块

1.创建模块

2.使用import语句导入模块

3.使用from...import 语句导入模块

4.模块搜索目录

4.1模块默认搜索目录

4.2临时添加目录

4.3增加.pth文件

4.4 在PYTHONPATH环境变量中添加

三、以主程序的形式执行

四、python中的包(Package)

1.程序包结构

2.创建和使用包

2.1 创建包

2.2使用包

五、引用其他模块

1.导入和使用标准模块

2.第三方模块的下载与安装

2.1 下载方式

2.2 常用第三方模块


记述python关于模块的知识点。

一、模块的概念

模块就是将一些零散的功能方法封装起来形成的一个部件,类似于汽车的外壳、发动机等由很多个小零件组成的一个大零件。

  • python中一个“.py”文件就是一个模块。
  • 将特定功能的代码放置在同一个文件作为一个模块,可以方便其他程序导入使用
  • 使用模块可以避免函数名或者变量名冲突

二、自定义模块

1.创建模块

  • 将相关代码编写在单独的一个文件中
  • 将文件命名为“模块名+.py”,模块文件类型必须为“.py”类型

2.使用import语句导入模块

import modulename [as alias]
  • modulename:模块的名称
  • alias:模块的别名
  • 导入后,可以通过“modulename.xxx”调用模块内定义的变量、函数、类等
  • 设置别名后可以使用“alias.xxx”嗲用模块内部的变量、函数、类等
  • 直接导入模块会运行整个模块的代码指令。

3.使用from...import 语句导入模块

from modelname import functions
  • modelname:模块名
  • functions:模块内的函数、变量、类等,可以一次性导入多个参数用“,“隔开
  • 使用该语句导入后可以直接使用具体的类、函数、变量,不需要再添加模块名作为前缀
  • 使用通配符”*“可以一次性导入模块中的所有全部定义
  • 导入的定义必须保证在当前命名空间只有一个定义,否则后导入的会覆盖前面导入的
  • 导入定义重复时需要使用import导入方式,避免冲突

4.模块搜索目录

4.1模块默认搜索目录

使用import导入模块时,默认会按照固定顺序查找:

  1. 当前目录(python脚本文件坐在目录)下查找;
  2. 到PYTHONPATH(环境变量)下的每个目录中查找;
  3. 到python的默认安装目录下查找;
  4. 以上目录的具体位置保存在sys的sys.path变量中,可通过sys.path输出(需要先导入sys模块)

4.2临时添加目录

import sys
sys.path.append("modelpath")

通过上述指令将模块路径添加到导入路径中。

4.3增加.pth文件

在python的安装目录下的Lib\site-packages子目录中添加一个.pth文件,将模块目录写道该文件中。

# 注释:xxx模块路径
E:\x\xxx

4.4 在PYTHONPATH环境变量中添加

在我的电脑-属性-环境变量中python的环境变量中添加路径。

添加后需要重新打开python文件才能添加目录。

通过本方法添加的目录可以在不同版本的python中共享。

三、以主程序的形式执行

  • 模块可以使用内置的"__name__"变量名检查当前运行该代码的模块名称
  • 如果一个模块没有被导入到其他模块,那该模块就是顶级模块,可以在python解释器的顶级模块中运行,此时__name__变量的值为"__main__"

四、python中的包(Package)

包就是在将功能相近的代码模块放在同一个文件夹下,既可以规范代码,也可以避免模块名冲突。需要在模块中放置一个__init__.py文件。

1.程序包结构

项目开发是通过创建多个包用于存放不同类型的文件以使程序结构更为清晰明了。

2.创建和使用包

2.1 创建包

  • 通过创建一个文件夹,然后在文件夹中添加"__init__.py"文件即可创建一个包;
  • "__init__.py"文件中可以不写任何代码,也可以写一些代码,编写的代码导入包时自动运行;
  • "__init__.py"模块的名字对应的是包的名字。

2.2使用包

2.2.1 import包

import 包名.模块名
  • 通过”包名+模块命“的形式导入包中的模块
  • 包中导入模块是使用模块中的定义时需要使用"包名. 模块名.xxx"的完整形式调用

2.2.2 from ... import包

from package import model
  • 从包中导入具体的模块
  • 导入后调用时只需要包含具体的模块名,不需要带包名
from package.model import define
  • 直接从包中模块导入具体定义
  • 调用时直接调用具体定义接口,不需要添加前缀
  • 可以使用通配符”*“导入所有定义

五、引用其他模块

1.导入和使用标准模块

python中有很多自带的模块,也就是标准库,导入时直接使用import导入即可。

常用标准库如下:

模块名说明
sys

与python解释器及其环境操作相关的标准库。

如sys.path

time与时间处理相关的标准库
os访问操作系统服务功能的标准库
calendar提供与日期相关的各种函数的标准库。
urllib用于读取来自网络、服务器数据的标准库
json用于使用json序列化和反序列化对象的标准库
re用于字符串正则表达式使用的标准库
math提供算术运算的标准库
decimal用于精确控制运算精度、有效位数、四舍五入等操作的十进制运算
shutil用于进行高级为念操作,如复制、移动、重命名等
logging提供了灵活的记录事件、错误、警告和调试信息等日志信息的功能
tkinter使用python进行gui编程的标准库

2.第三方模块的下载与安装

第三方模块官方下载网址:http://pypi.python.org/pypi

2.1 下载方式

在python命令行中,使用pip命令直接下载。

pip <command> [modulename]
  • command:用于执行的命令。
    • install:安装第三方模块
    • uninstall:卸载已安装的第三方模块
    • list:显示已安装的第三方模块,注可以使用help('modules')查看python中的模块(包括标准库和第三方库)
  • modulename:可选参数,指定模块名,当command为install或者uninstall时不能省略

2.2 常用第三方模块

模块说明
numpy用于科学计算的模块

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

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

相关文章

计算机毕业设计php_thinkphp_vue的家乡石泉网站-乡村家乡旅游信息网站

运行环境 开发语言&#xff1a;PHP 数据库:MYSQL数据库 应用服务:apache服务器 使用框架:ThinkPHP&#xff1a;vue 开发工具:VScode/Dreamweaver/PhpStorm等均可 项目简介 目前家乡石泉市是一个有不同民族“大杂居,小聚居”的地方,所以对于发展家乡特色业还是比较有优势…

C++初阶 priority_queue(优先级队列)的使用和模拟实现

作者&#xff1a;小萌新 专栏&#xff1a;C初阶 作者简介&#xff1a;大二学生 希望能和大家一起进步&#xff01; 本篇博客简介&#xff1a;介绍优先级队列的使用和模拟实现 优先级队列的使用和模拟实现priority_queue的使用priority_queue的介绍priority_queue的定义priority…

Solid.js前端新秀框架 力压 web3.js 框架

SolidJS 是什么&#xff1f;SolidJS是一个声明式、高效且灵活用于构建用户界面的 JavaScript 库。 Solid 号称拥有 JSX 语法&#xff0c;类似于 React hook 的语法&#xff0c;你可以用现代化的开发方式&#xff0c;获得性能最快的代码。 框架本身只有7 KB大小&#xff0c;无需…

【在SpringBoot项目中删除相册数据--Controller层】

在AlbumController中添加处理请求的方法&#xff1a; 请求路径&#xff1a;/album/delete请求方式&#xff1a;POST请求参数&#xff1a;Long id响应结果&#xff1a;JsonResult >>> state:20000 具体代码为&#xff1a; // http://localhost:9080/album/delete ApiO…

常用Assignment写作句型怎么积累?

Assignment是留学生在国外留学期间常见的写作内容。很多留学生在最初接触Assignment时往往会感到无从下手&#xff0c;更不知道该怎么去表达自己想要表达的内容。其实&#xff0c;Assignment写作并没有想象中那么难&#xff0c;在Assignment写作中有很多句型是经常用到的&#…

Windows win10 win11 多屏幻灯片放映壁纸 多屏设置不同的壁纸 多屏不同幻灯片壁纸

背景&#xff1a;windows 可以右键为不同的显示器设置不同的壁纸&#xff08;需要先关闭虚拟桌面&#xff09;。但是 slideshow 的不支持多个屏幕。 目前看这个问题是没有官方的方案的&#xff0c;理论上有一个收费软件可以解决&#xff0c;或者用*版&#xff0c;但是不想给钱…

React Fiber树的构建和替换过程

文章の目录前言mount 过程update 过程写在最后前言 React Fiber树的创建和替换过程运用了双缓存技术&#xff0c;即先在内存中创建 fiber 树&#xff0c;待 fiber 树创建完成以后&#xff0c;直接将旧的 fiber 树替换成新的 fiber 树&#xff0c;这样做的好处是省去了直接在页…

datax之channel学习

一般来说datax只需要我们设置reader和writer&#xff0c;但是是什么连接了reader和writer呢&#xff1f; 就是channel&#xff01; 这个有什么用&#xff1f; 慢慢学习。 core.json [devusercdp-node12 /data/DATA_DIR/share/dataingestion/conf]$ cat core.json { &quo…

应急物资仓库可视化管理系统-智慧应急物资装备管理系统

1. 项目概述 应急物资仓库可视化系统(智慧物资管理系统 DW-S300)是一套成熟系统&#xff0c;依托互 3D 技术、云计算、大数据、RFID 技术、数据库技术、AI、视频分析技术对 RFID 智能仓库进行统管理、分析的信息化、智能化、规范化的系统。 应急物资&#xff0c;是每当灾害发…

Cyanine7 NHS|CY7-N-羟基琥珀酰亚胺|CY7-NHS ester

Cyanine7 NHS|CY7-N-羟基琥珀酰亚胺|CY7-NHS ester 中文名称&#xff1a;CY7-N-羟基琥珀酰亚胺 英文名称&#xff1a;Cyanine7 NHS 性 状&#xff1a;深绿色粉末 分子量&#xff1a;827.94 Abs/Em Maxima&#xff1a;675/694nm 分子式&#xff1a;C41H46N3NaO10S2 溶解性…

【网站架构】项目越迭代越难、严重延期?那是没处理好变化

大家好&#xff0c;欢迎来到停止重构的频道。 本期&#xff0c;我们讨论网站系统的扩展性。 扩展性指的是网站系统应该如何更好地处理需求变化、版本迭代。 对于有几个项目经验的人来说&#xff0c;可能对这样的问题不以为然&#xff0c;毕竟devops、CI/CD、git、敏捷开发、…

Pytest测试框架(一):Pytest介绍与安装,Pytest编写规则及pytest.main()的参数

Pytest测试框架(1)&#xff1a;Pytest介绍与安装 pytest简介&#xff1a; pytest是python的第三方单元测试框架&#xff0c;比自带的unittest更简洁和高效&#xff0c;同时兼容unittest框架。 它还有如下优点&#xff1a; 1、简单灵活&#xff0c;容易上手&#xff0c;文档丰…

计算机毕业设计django基于python精品课程在线学习系统

项目介绍 在各学校的教学过程中,租房系统是一项非常重要的事情。随着计算机多媒体技术的发展和网络的普及。采用当前流行的B/S模式以及3层架构的设计思想通过Python技术来开发此系统的目的是建立一个配合网络环境的精品课程系统的平台,这样可以有效地解决课程学习系统混乱的局…

线上卡顿监控

文章目录1. 卡顿与ANR的关系2. 卡顿原理3. 卡顿监控3.1 WatchDog3.2 Looper Printer3.2.1 监控TouchEvent卡顿3.2.2 监控IdleHandler卡顿3.2.3 监控SyncBarrier泄漏4. 小结平时看博客或者学知识&#xff0c;学到的东西比较零散&#xff0c;没有独立的知识模块概念&#xff0c;而…

世界杯期间,抖音的涨粉秘诀是什么?

纵览11月抖音涨粉趋势&#xff0c;生活、体育、美食等领域有不少账号迅速圈粉。据新抖『粉丝飙升榜』TOP30显示&#xff0c;11月上榜达人的更替率高达83.3%&#xff0c;其中&#xff0c;有达人凭3条人物随拍视频涨粉千万&#xff1b;有达人凭硬核美食教程&#xff0c;被网友戏称…

网络工程毕业设计 SSM音乐管理系统(源码+论文)

文章目录1 项目简介2 实现效果2.1 界面展示3 设计方案3.1 概述3.2 系统流程3.2.1 系统开发流程3.3 系统结构设计4 项目获取1 项目简介 Hi&#xff0c;各位同学好呀&#xff0c;这里是M学姐&#xff01; 今天向大家分享一个今年(2022)最新完成的毕业设计项目作品&#xff0c;【…

【Python】基础语法 5(字典和文件)

1. 字典 1.1 字典是什么 字典是一种存储键值对的结构。 键值对是计算机/生活中一个非常广泛使用的概念。 把 键(key) 和 值(value) 进行一个一对一的映射, 然后就可以根据键, 快速找到值。 1.2 创建字典 创建一个空的字典&#xff0c;使用 { } 表示字典 a { } b dict() prin…

RabbitMQ之交换机

Exchanges概念 RabbitMQ消息传递模型的核心思想是&#xff1a;生产者生产的消息从不会直接发送到队列。实际上&#xff0c;通常生产者甚至都不知道这些消息传递到了哪些队列中。 相反&#xff0c;生产者只能将消息发送到交换机&#xff0c;交换机工作的内容很简单&#xff0c;…

【数据结构】详解七大排序算法(有源码)

目录☀️直接插入排序☀️希尔排序☀️直接选择排序☀️堆排序☀️冒泡排序☀️快速排序☀️归并排序☀️排序算法复杂度及稳定性分析☀️直接插入排序 1、基本思想 把待排序的数按其关键码值的大小逐个插入到一个已经排好序的有序序列中&#xff0c;直到所以的记录插入完为止…

【设计模式】装饰者模式Decorator(Java)

文章目录1. 装饰者模式定义2. 类图3.Java实现3.1 饮料Beverage3.2 小料CondimentDecorator3.3 椰果Coconut3.4 红豆RedBean3.5 奶茶MikeTea3.6 果茶JuiceTea3.7 商店主方法StoreMain1. 装饰者模式定义 装饰者模式动态地将责任附加到对象上。若要扩展功能&#xff0c;装饰者提供…