Python教程(17)——python模块是什么?python模块详解
off999 2024-10-02 18:41 33 浏览 0 评论
Python模块简介
模块是一个包含了Python定义和语句的文件,可用于将功能组织成可重用和可维护的代码块。每个Python文件都可以作为一个模块,模块可以包含变量、函数、类或可执行代码。通过使用模块,我们可以将代码分离成逻辑单元,促进模块化编程。所以我们可以简单的理解为,一个py文件就是一个模块,大部分情况都是这样的。
使用Python模块
在Python中,要想使用Python模块,我们必须要将模块导入,这里可以使用import关键字。
导入整个模块
import module_name
这种方式会导入整个模块,你可以使用module_name来访问其中的函数、变量和类。例如,要导入math模块:
import math
result = math.sqrt(16)
print(result) # 输出:4.0
导入特定对象
from module_name import object_name
这种方式会导入指定的函数、变量或类,你可以直接使用该对象而不需要加上模块名。例如,要仅导入math模块中的sqrt函数:
from math import sqrt
result = sqrt(16)
print(result) # 输出:4.0
使用别名导入
import module_name as alias_name
这种方式可以给导入的模块指定一个别名,方便使用。例如,要将datetime模块导入并命名为dt:
import datetime as dt
now = dt.datetime.now()
print(now) # 输出当前的日期和时间
此外,还可以使用from module_name import *的形式导入模块中的所有对象。但是不推荐这种方式,因为它会导入模块中的所有对象,可能造成命名冲突或意外的行为。最好的做法是显式导入需要使用的对象。
寻找路径的顺序
需要注意的是,Python会按照一定的搜索路径来查找模块,其中包括当前目录、Python标准库的安装目录以及其他已添加的路径。如果要导入自定义的模块或第三方模块,需要将其所在的路径添加到系统的搜索路径中。
比如当前目录中有个math.py文件,自己的文件是main.py
my_project/
├── main.py
└── math.py
math.py的文件内容
print("this is math module")
main.py的文件内容
import math
# 使用math模块中的函数和常量
result = math.sqrt(25)
print(result)
按正常来说,这个应该输出5的,当时如果你运行main.py会发现,发生了异常。
# python main.py
this is math module
Traceback (most recent call last):
File "/root/main.py", line 4, in <module>
result = math.sqrt(25)
AttributeError: module 'math' has no attribute 'sqrt'
这是因为导入模块的时候,最先是在当前目录下查找,如果找到了,就直接用当前目录的模块,上面main.py中导入了math模块,而当前目录下刚好有一个math.py,所以就被导入了,但是这个文件中又没有sqrt方法,所以就报错了。所以在导入模块的时候一定要注意这种情况。
__all__特殊用法
前面我们说到了,from module_name import *的形式会导入模块中的所有对象,但是通过加入__all__变量的方式可以方便的选择导入的对象。
__all__是一个特殊的变量,用于定义模块的公共接口。在Python中,可以在模块中定义__all__变量,并将其设置为一个包含模块中所有公共对象名称的列表。这样当使用from module import *语句导入模块时,只有__all__列表中列出的对象才会被导入,而其他未列出的对象将不会被导入。
# mymodule.py
__all__ = ['func1', 'func2']
def func1():
pass
def func2():
pass
def _private_func():
pass
mymodule.py模块定义了两个公共函数func1()和func2()以及一个私有函数_private_func()。通过将__all__设置为只包含func1()和func2()的列表,只能从该模块中导入这两个函数,而不能导入其他函数或变量。
使用示例:
from mymodule import *
print(func1()) # 输出:<function func1 at 0x7f8c6d3a4b50>
print(func2()) # 输出:<function func2 at 0x7f8c6d3a4b90>
print(_private_func) # 报错:NameError: name '_private_func' is not defined
我们使用from mymodule import *语句导入了mymodule模块中的所有公共对象。可以看到,只有func1()和func2()被成功导入,而私有函数_private_func()没有被导入。如果尝试访问未导入的私有函数,将会引发NameError异常。
导入第三方模块
所谓第三方模块就是非python标准库的包,使用的时候需要通过pip的方式来安装,安装完之后使用方法和上面的完全一样。
更多精彩内容,请关注同名公众:一点sir(alittle-sir)
相关推荐
- 2500电脑组装最强配置(2500左右组装电脑主机配置清单)
-
两千五百元组装电脑,但配置只能是一般。台式机分为主机和显示器两个主体,按这个价格,显示器只能配置一般的,大约两百多元价格,其余都用来组装主机,主机包含机箱,电源,排风扇,电脑主板及内存,电脑处理器,声...
-
- 小米手机定时关机怎么设置(如何让小米手机定时关机)
-
1、从设置菜单中找到电池与性能选项。 2、选择电池版块,点击定时开关机。 3、将定时开机右边的按钮开...
-
2025-12-28 02:51 off999
- 磁盘删除的文件怎么恢复(磁盘误删怎么恢复)
-
可以恢复,因为删除文件时,其实只是把表头删除了,后面的数据并没有删除,直到下一次进行写磁盘操作需要占用节点所在位置时,才会把相应的数据覆盖掉。所以,就算你误删了文件之后又进行了其他写磁盘操作,只要没有...
-
- qq自动回复内容古风(qq自动回复古文)
-
1、抽剑相助,搭救无辜,却引来杀身之祸。那女子故作柔弱,假装爱慕,只为那本剑谱。2、只缘感君一回顾,使我思君朝与暮。3、相知相惜若可谓缘,不负韶华年。4、看那天地日月,恒静无言;青山长河,世代绵延;就像在我心中,你从未离去,也从未改变。5、...
-
2025-12-28 01:51 off999
- 惠普电脑bios设置u盘启动(惠普 bios u盘启动)
-
惠普电脑bios设置u盘启动:1、插上制作好的u启动启动盘的u盘并启动电脑,在进入开机画面的时候按“f2”进入bios界面;2、进入bios界面之后切换到“boot”,准备设置u盘启动;3、这里在键盘...
- win7优化开机启动项(windows10启动项优化)
-
开机出现错误0xc0000017无法开机错误的解决办法。1、就是system文件丢失了。2、如果想来恢复正常,需要有U盘或者光盘的pe系统,在pe下修复。3、本身C:\Windows\System32...
- 默认浏览器怎么改(软件默认浏览器怎么改)
-
在浏览器中设置默认浏览器的方法略有不同,以下是在常见的几个浏览器中设置默认浏览器的方法:1.在Windows10中设置Edge浏览器为默认浏览器: a.打开...
- 显卡驱动程序是什么
-
NVIDIA驱动是一种软件,用于管理安装在计算机上的NVIDIA图形处理器,以确保它们正常运行。NVIDIA是一家知名的GPU(图形处理器)制造商,提供各种高性能显卡和集成GPU,这些设备需要相应的驱...
-
- 扣扣空间电脑版登录入口(qq空间电脑版官网网站登录)
-
可以通过以下链接登陆进入QQ空间:https://qzone.qq.com/QQ空间(Qzone)是腾讯公司于2005年开发出来的一个具有个性空间,具有博客(blog)的功能,自问世以来受到众多人的喜爱。在QQ空间上可以书写日志、写说说...
-
2025-12-27 22:03 off999
- 怎么还原(怎么还原手机出厂设置)
-
1、首先,在Excel工作表中依次点击左上角的文件图标——Excel选项。2、然后,在弹出来的Excel选项的小窗口中点击左侧的保存菜单栏目。3、接着,在保存菜单栏目的右侧可以看到自动恢复文件的位置,...
- 怎么用360升级系统版本(怎么用360更新系统)
-
360可以下载补丁更新漏洞,对系统进行升级(在360修复漏洞里面点立即修复就行了)升级电脑系统大多数情况下是指低版本的系统升级到高版本的系统,比如说从windows2000升到xp,从vista升级到...
- 360助手电脑版客户端(360软件助手电脑)
-
还是非常好的,都是能够让他可以直接拦截病毒,同时能够让他清理内存,而且能够让这个有非常好的手机应用软件权限优化作用。360手机助手是360推出的手机助手,拥有海量软件和游戏轻松下载,炫彩主题壁纸随心点...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
