Python基础-第 11 章 模块与包
第 11 章 模块与包11.1 创建模块模块名区分大小写且不能与自带的标准模块重名。创建一个模块.pynum 100def add(a, b):求两个数的和a b11.2 导入模块11.2.1 全部导入模块名as 别名于同一目录之内, 去创建一个名为main.py的文件, 于该文件里, 进行导入.py模块的操作, 并且加以使用。也可以在导入模块时给模块起别名。# 导入模块as a1# 使用模块print(a1.add(1, 2))print(a1.num)11.2.2 局部导入 from如果多个模块中存在重名成员后一次导入会覆盖前一次导入。from 模块名 成员名1as 别名, 成员名2as 别名,…创建新的模块.pynum 200_str1abcdef multi(a, b):求两个数的积a * b只能使用导入的成员from addprint(add(1, 2))print, num这个东西, 它可不是, name is not。重名变量后一次导入会覆盖前一次导入# 导入模块from add,numfrom num# 使用模块print(add(1, 2))print(num)通过别名区分不同模块的变量# 导入模块from add,num as a1from num as m1# 使用模块print(add(1, 2))print(a1)print(m1)11.2.3 局部导入 from *将模块里所有并非以单下划线起始的成员进行导入, 借助成员名的途径直接予以访问。from 模块名 *# 导入模块from *# 使用模块print(add(1, 2))print(num)print(_str1)11.2.4 模块搜索顺序当导入一个模块时会按照以下顺序进行查找可以使用以下方式查看模块搜索顺序sysprint(sys.path)还能够借助 sys.path.(路径)此方式去朝着 sys.path里面临时增添路径。sysprint(sys.path)sys.path.(./..)# sys.path.(rD:\)print(sys.path)11.2.5当运用from *去导入模块之际, 能够于被导入的那个模块中借助all来设定哪些内容是能够被导入的。而all所进行的设置仅仅是在使用from *导入模块这种情况下才生效的。在.py 中向all添加部分元素num,add# 内容必须要用引号引起来num 100num1 200_str1abcdef add(a, b):求两个数的和a b于main.py里头, 运用from *去引入模块里的相关内容, 那些没在all之中的变量, 于使用之际将会出现报错的情况:from *print(add(1, 2))print(num)使用print(num1), 然而, 名为num1之物并不存在 , 这是怎么回事呢。11.2.6在 中 是一个特殊的内置变量1) 导入模块时测试代码被执行偶尔, 我们会于模块里撰写一些测试代码, 一旦模块被别的文件引入, 那么这些测试代码就会被运行。在 .py 中写一些测试代码num,addnum 100num1 200_str1abcdef add(a, b):求两个数的和a b10print(add(10,20))于 main.py 里面进行模块导入操作时, 发觉 .py 当中的测试代码已然被执行了:2)借助name “main” 规避测试代码被运行, 从而防止其执行。为了防止模块在被导入之际, 测试代码被执行, 我们能够于被导入的模块里, 增添对**name**属性的查验:num,addnum 100num1 200_str1abcdef add(a, b):求两个数的和a b10print()11if :12print(add(10,20))此时再在 main.py 中导入模块测试代码不会被执行11.3 dir()主要用于列出对象的属性的特定一些为内置函数, 列出对象的方法也是其用途, 列出当前作用域中定义的名称同样是它的作用, 它会以一个字符串列表的形式来返回。math# 查看math模块下的print(dir(math))class :def (self):self.x 1self.y 2def (self):passobj ()print(dir(obj))def ():pass 10print(dir())11.4 包包就是文件夹 不过该文件夹下必须有一个.py文件。11.4.1 创建包**.py能够仅仅是一个空白的文件, 又能够去执行包里面的初始化代码, 或者去设置变量。**。产生一个文件夹, 于该文件夹里生成.py文件, 还有.py的文件其中, 这个.py文件当前为空着未写内容, 之后, 要往.py以及.py文件之中写入代码。.py 10PI 3.def area():PI * *def ():2 * PI *.py 10 10def area(width, ):width *def (width, ):2 * (width )在包外创建一个 main.py 文件。整体结构如下其中 为一个包11.4.2 导入包**11.4.2.1 全局导入 **包名.模块名as 别名.print(..area(10))from . 或者 from day09.要是属于绝对路径, 那么, 他会将导入的模块当作顶级模块, 直接于sys.path里去寻觅模块, 而非去找那个点。**11.4.2.2 局部导入包下的模块 from **从包中导入模块from 包名 模块名as 别名fromprint(.area(10)) # 314.1592611.4.2.3, **局部导入包之下模块的成员, 采用from **。从包中模块导入功能from 包名.模块名 成员名as 别名from . areaprint(area(10)) # 314.1592611.4.2.4 局部导入 from * 从包中导入模块当我们运用 from * 之际, 并非会去查找并导入包的所有子模块, 缘由在于这会耗费很长的时间, 而且有可能衍生出我们并非想要的副作用, 还要怎么给你改还要怎么给你改还要怎么给你改这样行了就不用管还要怎么给你改的问题了解决办法唯一的情形是, 提供包的显式索引情况。要是包的.py里有定义, 在运行from *的时候, 它所呈现的是被导入的模块名列表状态。from 包名.模块名 *注意如果不加会无法导包在 main.py 中使用 from * 导入模块from *print(.area(10)) # 314.15926print(.area(10)) # 报错11.5 常用标准库包更多标准库可参考。11.6 引入第三方库11.6.1 pip命令方式pip是用于包管理的工具, 它具备对包进行查找, 以及下载、安装、卸载的相关功能。pip默认的源是IndexPyPI, 它的地址是某个位置, 如果在使用时, 发现下载方面速度较为迟缓, 用户是可以指定采用其他源的。1)pip常用命令pip listpip 包名pip 包名pip -i 包名pip set .index-url2)安装包步骤pip通过命令行这种方式来进行安装, 是把第三方包安装在本地之下, 比如说, C:\Users\\.pyenv\pyenv-win\\3.11.9\Lib\site- 标点符号。11.6.2 中引入1点击右下角的解释器设置2点击号3搜索要添加的包要是借助安装, 我们所挑选的解释器类别是每个项目各自独立的, 因而说的是把第三方包装设在当前这个项目的环境里面。11.7 打包自己的库并安装1先安装 库要是不安装库的话, 后续进行打包之际, 或许会碰到报错, 那就是: 没有命名‘’, 因而能够提前去安装库, 是在命令提示符当中执行下面这种命令:pip2在包外创建一个 setup.py 文件3setup.py 中添加如下内容from .core setup# from setup 3.13以上用这个setup(name, # 需要打包的名字1.0, # 版本., ., # 需要打包的模块4在 setup.py 同级目录下进行构建5也可以生成压缩包setup.py sdist6pip命令安装自己打的库pip /dist/-0.1.tar.gz7安装自己打的包库从本地磁盘安装包要是未能寻得Go to tool, 那么也能够于左上角在view-Tool中予以查找。导入存放的自己的库 的路径,就安装成功了若于具体使用期间察觉到红色波浪线, 然而此情形下仍可以正常使用, 其缘由在于你所开展项目的路径内部含有中文。

相关新闻

摆脱论文困扰!盘点2026年圈粉无数的的AI论文软件

摆脱论文困扰!盘点2026年圈粉无数的的AI论文软件

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文软件,覆盖选题构思、文献整理、内容生成、降重润色等核心场景,真正帮你高效搞定论文。 一、全流程王者:一站式搞定论文全链路(一天定稿首选&…

2026/9/8 15:05:59 阅读更多 →
建议收藏|盘点2026年行业天花板级的AI论文网站

建议收藏|盘点2026年行业天花板级的AI论文网站

一天写完毕业论文在2026年已不再是天方夜谭。以下是2026年最炸裂、实测能大幅提速的AI论文网站神器,覆盖全流程生成、文献处理、降重润色、格式排版四大核心场景,帮你高效搞定毕业论文。 一、全流程王者:一站式搞定论文全链路(一天…

2026/9/8 15:05:59 阅读更多 →
论文省心了!盘点2026年口碑爆棚的AI论文工具

论文省心了!盘点2026年口碑爆棚的AI论文工具

一天写完毕业论文在2026年已成现实。最新测评显示,2026年AI论文工具全面升级,覆盖选题、写作、查重、排版全流程,实测效率提升3倍以上,真正帮你高效搞定论文。 一、全流程王者:一站式搞定论文全链路(一天定…

2026/9/8 15:05:59 阅读更多 →

最新新闻

JavaScript entries() 方法详解:从对象数据转换到 OOXML 报错排查

JavaScript entries() 方法详解:从对象数据转换到 OOXML 报错排查

1. 到底谁是 entries():先分清这一大家子“Entries()方法”这个名字,在 JavaScript 里最常见的是Object.entries()。我第一次碰上它,是在处理一个数据上报需求时:后端给了一个对象,我需要把对象的每一组 key/value 都拼到日志里,还要筛掉空值。用传统的for...in要写…

2026/9/8 15:55:32 阅读更多 →
多智能体协作太乱?用消息总线设计一个轻量级Agent编排框架

多智能体协作太乱?用消息总线设计一个轻量级Agent编排框架

做AI Agent项目最怕什么?不是模型能力不够,而是多个智能体协同时乱成一锅粥:A等B的结果,B又在等C,C转头去调A的接口,最后整个任务链路卡死,像极了周一早高峰的地铁换乘站。我去年年底开始折腾的…

2026/9/8 15:55:32 阅读更多 →
博士延毕导师问责,关键在过程管理而非“连坐”

博士延毕导师问责,关键在过程管理而非“连坐”

博士延期毕业,导师跟着担责。这几天高校圈里讨论热度最高的新规,大概就是这个了。评论区一眼扫过去,“早该这样”和“以后谁还敢招博士”两种声音同时存在。我在高校做过科研管理相关的项目,也陪朋友处理过几次学生延毕的收尾&…

2026/9/8 15:55:32 阅读更多 →
ollama 本都部署模型

ollama 本都部署模型

ollama 本都部署模型 ollama 是什么 ollama 是一个开源的运行大模型的框架,可以让我们在不依赖GPU的情况下运行模型 ollama官网 运行ollama 有两种方式,第一个官网下载安装包 linux/macos/windows 都有 第二种就是通过docker 方式运行 ,官方镜像 ol…

2026/9/8 15:55:32 阅读更多 →
STM32学习27--SPI通信之W25Q64

STM32学习27--SPI通信之W25Q64

一、W25Q64详解1、简介W25Qxx是低成本的非易失性存储器,常用于数据存储、字库存储、固件程序存储等;存储介质:Nor Flash(闪存);W25Q64是8M存储,3.3V供电,标准四线SPI,24位地址;时钟频…

2026/9/8 15:55:32 阅读更多 →
C 语言|自定义类型:结构体、联合体与枚举 —— 学习笔记

C 语言|自定义类型:结构体、联合体与枚举 —— 学习笔记

C语言当中,结构体、联合体与枚举属于自定义的数据类型,内存排布、参数传递等方面存在不少容易混淆的知识点。本文就结构体、联合体、枚举的基础概念、内存特征以及基本用法展开整理,记录学习当中的理解。 文章目录结构体struct什么是结构体结…

2026/9/8 15:54:31 阅读更多 →

日新闻

加密资产价值投资:原理、方法与实战策略

加密资产价值投资:原理、方法与实战策略

1. 价值投资视角下的加密资产本质剖析作为践行格雷厄姆-多德学派十余年的价值投资者,我首次接触比特币白皮书时的震撼感至今记忆犹新。那是在2013年的一次金融科技研讨会上,当看到"去中心化电子现金系统"这个定义时,我的职业本能立…

2026/9/8 0:00:18 阅读更多 →
ODT光学测距技术原理与工业应用实践

ODT光学测距技术原理与工业应用实践

1. ODT技术全景解析ODT(Optical Distance Technology)作为现代精密测量领域的核心技术,近年来在工业检测、自动驾驶和医疗影像等领域展现出越来越广泛的应用价值。这项技术通过光学手段实现非接触式距离测量,其典型测量精度可达微…

2026/9/8 0:00:18 阅读更多 →
模板代码版本兼容实战:从单片机到服务端的隐性依赖与重构

模板代码版本兼容实战:从单片机到服务端的隐性依赖与重构

1. 模板代码为什么会"过期":三个最常见的失效场景 先说个我自己的经历。前阵子从旧电脑往新电脑迁移工作区,把一套写了快两年的单片机模板工程直接拷过去,Keil 一打开、编译,满屏的 error。仔细一看,不是芯片…

2026/9/8 0:00:18 阅读更多 →

周新闻

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/8 9:44:40 阅读更多 →
超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/7 21:08:44 阅读更多 →
基于CNN的调制信号识别:MATLAB实现时频图分类实战

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/8 2:03:15 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/8 0:22:41 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/8 1:17:14 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/8 3:16:24 阅读更多 →