python基础——模块【模块的介绍,模块的导入,自定义模块,*和__all__,__name__和__main__】
📝前言:
这篇文章主要讲解一下python基础中的关于模块的导入:
1,模块的介绍
2,模块的导入方式
3,自定义模块
🎬个人简介:努力学习ing
📋个人专栏:C语言入门基础以及python入门基础
🎀CSDN主页 愚润求学
🌄每日鸡汤:路漫漫其修远兮,吾将上下而求索
文章目录
- 一,模块的介绍
- 二,模块的导入和使用
- 1,直接导入模块(得到模块)
- (1)导入
- (2)使用
- 2,从模块中导入功能(得到功能)
- (1)导入
- (2)使用
- 3,设置别名
- 三,自定义模块
- 1,如何自定义模块
- 2,同名功能的选择
- 3,* 和__all__
- 4,模块中的测试代码
一,模块的介绍
1,什么是模块
在 Python 中,模块是一种组织 Python 代码的方法。模块可以包含定义(例如类、函数和变量)和可执行代码。如果当我们要使用的功能在模块中时,我们就可以导入模块,使用模块中的相应功能。也就是说:模块可以帮助你将代码组织得更有逻辑,并允许你将代码划分为更小的、更可管理的部分。
例如,我们想实现一些与时间相关的功能,我们就可以直接导入python中现有的time模块,然后调用time模块的功能帮我们实现。
二,模块的导入和使用
模块的导入一般写在文件的开头(这一点和C语言中,要包含对应的头文件类似,要写在开头)
导入方式汇总:

下面我们介绍几种基本的导入方式:
1,直接导入模块(得到模块)
直接导入模块后,我们就可以用模块里面的全部功能
(1)导入
语法:
import 模块名
# 或者一次性导入多个:
import 模块名, 模块名
示例,导入time模块
import time # 导入time模块
(2)使用
当我们只导入了模块,没有具体到功能名的时候,在使用时,我们需要通过模块来找功能
语法:
模块名.功能
示例(导入time模块,并且使用里面的sleep功能):
import time # 导入time模块
time.sleep(10) # 通过 . 操作符使用功能
sleep的作用就是:让程序暂停运行n秒
2,从模块中导入功能(得到功能)
(1)导入
语法:
from time import sleep # 导入time模块的sleep功能
示例:
from time import sleep # 导入time模块的sleep功能
(2)使用
这时候,我们已经得到了功能,就无须通过模块来找到功能了,示例:
from time import sleep # 导入time模块的sleep功能
sleep(10) # 直接使用功能
(注意:这时候我们只能使用sleep功能,而不能使用time模块里面的其他功能,因为我们只指定导入了这个功能)
3,设置别名
当然,正如本文的第一张图片,我们可以在导入以后,对模块或者是功能进行别名设置:
from time import sleep as al # 导入time模块的sleep功能,给sleep设置别名:sl
al(10) # 通过别名al来使用sleep功能
三,自定义模块
1,如何自定义模块
自定义模块其实就是创建一个以.py结尾的python文件,然后我们可以在这个文件里面写功能
(注意:自定义模块的命名要符合标识符的命名规则)
当我们需要调用这个文件里面的功能时,只需要导入这个模块就可以(模块名就是文件名)
例如,我们创建一个自定义模块:

使用它:
import test # 导入我们的自定义模块
test.ptint1() # 使用里面的功能
输出:

2,同名功能的选择
注意:当导入多个不同的模块,但模块内有同名功能,当调用这个同名功能时,调用的是后面导入的模块的功能
如:
我们在test1和test2模块里面写入同名功能:


运行下面代码:
from test1 import my_ptint
from test2 import my_ptint
my_ptint()
输出:

3,* 和__all__
* 导入:
在Python中,使用 from module_name import * 表示导入模块中的所有内容。
这会导入模块中的所有变量、函数和类,我们可以在当前命名空间中直接使用它们。
(注意:这种方法可以快速地导入模块中的所有内容,但可能导致命名冲突,因此通常不推荐使用)
__all__:
__all__ 是模块中的一个特殊变量,它定义了模块中应该被导入的内容。
当使用 from module_name import * 时,只有 __all__ 指定的内容会被导入。(换句话说,__all__ 限制了 * 导入的行为)
示例:


这时候我们使用my_print3就会报错,因为__all__变量限制了*的导入
4,模块中的测试代码
假如我们在文件里面写好功能以后,想测试一下这些功能,如:

输出结果是正常的,并且我们不打算删除这些测试代码。
但是,当我们在别的文件里面,对刚刚的模块进行导包:
from test1 import my_print1
my_print1()
输出结果:
可见:在我们导包的时候,测试语句也被输出了
这是因为:
我们from 模块的时候,其实是相当于把模块文件执行了
若模块里面有测试代码,则在我们调用的时候,也会运行这些测试代码(就如上面输出的前三行)
为了解决这个问题我们可以使用__name__变量和__main__变量:
在Python中,__main__ 是一个特殊的模块,它主要用于执行模块中的main()函数。当你直接运行一个Python文件时,这个文件中的代码会进入__main__模块。换句话说,__main__模块是Python解释器直接运行的入口。
在Python中,一个模块的__name__属性会自动设置为’__main__',如果你直接运行一个模块,你可以通过这个属性来判断当前的模块是否是__main__模块。
例如,下面的代码:
if __name__ == '__main__':print("这是一个直接运行的模块")
当我们运行这条代码所写在的文件的时候:__name__就会直接被设置成__main__
当我们运行别的文件的时候,__name__是不会被设置成__main__的
利用这个特性,我们就可以在这个条件判断语句内写入测试语句,从而达到:
在运行模块的时候,能够进入测试语句,
但是在别的文件中导入模块,运行别的文件的时候,测试语句就不会被运行
例如:
在测试文件test1中

(注意右上角:运行的是当前文件)
输出:

在其他文件中:

输出:

这时候就不会再输出测试语句了
🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!
相关文章:
python基础——模块【模块的介绍,模块的导入,自定义模块,*和__all__,__name__和__main__】
📝前言: 这篇文章主要讲解一下python基础中的关于模块的导入: 1,模块的介绍 2,模块的导入方式 3,自定义模块 🎬个人简介:努力学习ing 📋个人专栏:C语言入门基…...
【HTML】标签学习(下.2)
(大家好哇,今天我们将继续来学习HTML(下.2)的相关知识,大家可以在评论区进行互动答疑哦~加油!💕) 目录 二.列表标签 2.1 无序列表(重点) 2.2有序列表(理解) 2.3 自定义列表(重点…...
os模块篇(十一)
文章目录 os.chdir(path)os.chmod(path, mode, *, dir_fdNone, follow_symlinksTrue)os.chown(path, uid, gid, *, dir_fdNone, follow_symlinksTrue)os.getcwd()os.getcwdb()os.lchflags(path, flags)os.lchmod(path, mode)os.lchown(path, uid, gid) os.chdir(path) os.chdi…...
编译amd 的 amdgpu 编译器
1,下载源码 git clone --recursive https://github.com/ROCm/llvm-project.git 2, 配置cmake cmake -G "Unix Makefiles" ../llvm \ -DLLVM_ENABLE_PROJECTS"clang;clang-tools-extra;compiler-rt" \ -DLLVM_BUILD_EXAMPLESON …...
github 多个账号共享ssh key 的设置方法
确认本机是否已有ssh key 首先确认自己系统内有没有 ssh key。 bash复制代码cd ~/.ssh ls *.pub # 列出所有公钥文件id_rsa.pub若有,确认使用当前 key 或者生成新 key,若没有,生成新 key。由于我需要登录两个帐号,所以在已经存在…...
dm8修改sysdba用户的密码
1 查看达梦数据库版本 SQL> select * from v$version;LINEID BANNER ---------- --------------------------------- 1 DM Database Server 64 V8 2 DB Version: 0x7000c 3 03134283904-20220630-163817-200052 …...
基于boost准标准库的搜索引擎项目
零 项目背景/原理/技术栈 1.介绍boost准标准库 2.项目实现效果 3.搜索引擎宏观架构图 这是一个基于Web的搜索服务架构 客户端-服务器模型:采用了经典的客户端-服务器模型,用户通过客户端与服务器交互,有助于集中管理和分散计算。简单的用户…...
语言模型进化史(下)
由于篇幅原因,本文分为上下两篇,上篇主要讲解语言模型从朴素语言模型到基于神经网络的语言模型,下篇主要讲解现代大语言模型以及基于指令微调的LLM。文章来源是:https://www.numind.ai/blog/what-are-large-language-models 四、现…...
设计模式之旅:工厂模式全方位解析
简介 设计模式中与工厂模式相关的主要有三种,它们分别是: 简单工厂模式(Simple Factory):这不是GoF(四人帮,设计模式的开创者)定义的标准模式,但被广泛认为是工厂模式的…...
大数据时代的生物信息学:挖掘生命数据,揭示生命奥秘
在当今科技日新月异的时代,大数据如同一座蕴藏无尽宝藏的矿山,而生物信息学则是那把锐利的探矿锤,精准有力地敲击着这座“生命之矿”,揭示出隐藏在其深处的生命奥秘。随着基因测序技术的飞速进步与广泛应用,生物医学领…...
微信小程序开发【从入门到精通】——页面导航
👨💻个人主页:开发者-曼亿点 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 曼亿点 原创 👨💻 收录于专栏:…...
嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记15:PWM输出
系列文章目录 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记01:赛事介绍与硬件平台 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记02:开发环境安装 嵌入式|蓝桥杯STM32G431(…...
SQLite中的隔离(八)
返回:SQLite—系列文章目录 上一篇:SQLite版本3中的文件锁定和并发(七) 下一篇:SQLite 查询优化器概述(九) 数据库的“isolation”属性确定何时对 一个操作的数据库对其他并发操作可见。 数据库连接之…...
Zabbix6 - Centos7部署Grafana可视化图形监控系统配置手册手册
Zabbix6 - Centos7部署Grafana可视化图形监控系统配置手册手册 概述: Grafana是一个开源的数据可视化和监控平台。其特点: 1)丰富的可视化显示插件,包括热图、折线图、饼图,表格等; 2)支持多数据…...
Electron无边框自定义窗口拖动
最近使用了electron框架,发现如果自定义拖动是比较实用的;特别是定制化比较高的项目,如果单纯的使用-webkit-app-region: drag;会让鼠标事件无法触发; 过程中发现问题: 1.windows缩放不是100%后设置偏移界面会缩放,感觉像吹起的气…...
vue3+echarts:echarts地图打点显示的样式
colorStops是打点的颜色和呼吸灯、label为show是打点是否显示数据、rich里cnNum是自定义的过滤模板用来改写显示数据的样式 series: [{type: "effectScatter",coordinateSystem: "geo",rippleEffect: {brushType: "stroke",},showEffectOn: &quo…...
vue3从精通到入门7:ref系列
Vue 3 的 Ref 是一个集合,包括多个与响应式引用相关的功能,这些功能共同构成了 Vue 3 响应式系统的重要组成部分。以下是更全面的介绍: 1.ref ref 接受一个内部值并返回一个响应式且可变的 ref 对象。这个对象具有一个 .value 属性…...
灵动翻译音频文件字幕提取及翻译;剪映视频添加字幕
参考:视频音频下载工具 https://tuberipper.com/21/save/mp3 1、灵动翻译音频文件字幕提取及翻译 灵动翻译可以直接chorme浏览器插件安装: 点击使用,可以上传音频文件 上传后自动翻译,然后点击译文即可翻译成中文,…...
在Gitee上创建新仓库
1. 登录到你的Gitee账户。 2. 在Gitee首页或仓库页面,点击“新建仓库”按钮。 3. 填写仓库名称、描述(可选)、选择仓库是否公开等信息。 4. 点击“创建仓库”按钮完成创建。 2. 本地代码连接到远程仓库 假设你已经在本地有一个项目&#…...
linux 配置NFS
1、NFS简介 NFS 是Network File System的缩写,即⽹络⽂件系统。NFS 的基本原则是“容许不同的客户 端及服务端通过⼀组RPC分享相同的⽂件系统”,它是独⽴于操作系统,容许不同硬件及操作 系统的系统共同进⾏⽂件的分享。 NFS在⽂件传送或信息…...
一文分清Agent与Skill
在AI应用开发或学习过程中,很多人都会陷入一个困惑:Agent和Skill到底有什么区别?其实只要抓住“定位”和“能力”两个核心,就能轻松拨开迷雾,把这两个概念彻底分清。 先懂Skill 先从我们最熟悉的Skill说起。Skill是封装…...
Python分布式系统设计:从理论到实践
Python分布式系统设计:从理论到实践 引言 分布式系统是现代后端架构的核心,它通过多节点协作来实现高可用、高性能和可扩展性。Python虽然不是传统的系统编程语言,但通过丰富的库和框架,也可以构建强大的分布式系统。 本文将深…...
Adobe-GenP 3.0终极指南:5步免费解锁Adobe全家桶完整功能
Adobe-GenP 3.0终极指南:5步免费解锁Adobe全家桶完整功能 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP Adobe-GenP是一款专业的Adobe Creative Cloud通…...
【微电网优化】基于改进自适应粒子群算法的孤岛微电网PID参数优化设计与Matlab仿真
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 dz…...
程序员转大模型,这8个必备框架,新手也能快速落地项目
文章目录前言1. LangChain 2026:AI应用开发的"事实标准",新手入门绕不开1.1 大白话理解LangChain1.2 2026年核心更新亮点1.3 新手快速上手代码示例1.4 避坑指南2. LlamaIndex:RAG专属神器,知识库搭建就靠它2.1 大白话理…...
实测Taotoken多模型路由的延迟与稳定性体感分享
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 实测Taotoken多模型路由的延迟与稳定性体感分享 作为日常依赖大模型API进行开发的工程师,API服务的稳定性和响应速度是…...
Switch游戏文件管理的终极解决方案:5步掌握NSC_BUILDER批量处理技巧
Switch游戏文件管理的终极解决方案:5步掌握NSC_BUILDER批量处理技巧 【免费下载链接】NSC_BUILDER Nintendo Switch Cleaner and Builder. A batchfile, python and html script based in hacbuild and Nuts python libraries. Designed initially to erase titleri…...
2026 AI大会VIP服务全拆解(含未公开议程权重表、闭门实验室预约机制与院士级1v1对接白名单)
更多请点击: https://intelliparadigm.com 第一章:2026 AI大会VIP服务全景概览 核心权益与差异化体验 2026 AI大会VIP服务面向企业技术决策者、AI架构师及前沿研究团队,提供从会前智能匹配到会后知识沉淀的全链路支持。VIP用户可提前48小时…...
Agent 一接通知中心就开始误清未读:从 Notification Scope 到 Action Claim 的工程实战
通知中心最容易被低估的,不是消息多,而是 Agent 明明只想处理一条提醒,最后却把整页未读一起清掉。⚠️ 这类事故会直接抹掉待办线索、告警入口和审批提醒。📩图 1:通知中心真正危险的不是消息多,而是动作作…...
怎样轻松配置黑苹果系统:OpenCore Configurator新手友好的终极指南
怎样轻松配置黑苹果系统:OpenCore Configurator新手友好的终极指南 【免费下载链接】OpenCore-Configurator A configurator for the OpenCore Bootloader 项目地址: https://gitcode.com/gh_mirrors/op/OpenCore-Configurator 还在为复杂的黑苹果引导配置而…...

