python中的模块库包有什么区别?
一文带你分清Python模块、包和库。一、模块
Python模块(Module),是一个Python文件,以。py结尾,包含了Python对象定义和Python语句。
模块能定义函数,类和变量,模块也能包含可执行的代码。1。1导入模块
1。1。1导入模块的方式import模块名from模块名import功能名from模块名importimport模块名as别名from模块名import功能名as别名1。2导入方式详解
import语法:1。导模块import模块名import模块名1,模块名2。。。2。调功能模块名。功能名()
体验:importmathprint(math。sqrt(9))3。0
from。。import。。
语法:from模块名import功能1,功能2,功能3。。。
体验:frommathimportsqrtprint(sqrt(9))from。。import
语法from模块名import
体验:frommathimportprint(sqrt(9))
as定义别名
语法模块定义别名import模块名as别名功能定义别名from模块名import功能as别名
体验模块别名importtimeastttt。sleep(2)print(hello)功能别名fromtimeimportsleepasslsl(2)print(hello)1。2制作模块
在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。也就是说定义模块名必须要符合标识符命名规则。
1。2。1定义模块
新建一个Python文件,命名为mymodule1。py,并定义testA函数。deftestA(a,b):print(ab)
1。2。2测试模块
在实际开中,当一个开发员编写完一个模块后,为了让模块能够在项目中达到想要的效果,这个开发员会在py文件中添加一些测试信息。,例如,在mymodule1。py文件中添加测试代码。deftestA(a,b):print(ab)testA(1,1)12345
此时,无论是当前文件,还是其他已经导入了该模块的件,在运行的时候都会自动执行testA函数的调用。
解决办法如下:deftestA(a,b):print(ab)只在当前件中调该函数,其他导的件内不符合该条件,则不执testA函数调ifnamemain:testA(1,1)
1。2。3调用模块importmymodule1mymodule1。testA(1,1)
1。2。4注意事项
如果使用from。。import。。或from。。import导入多个模块的时候,且模块内有同名功能。当调这个同名功能的时候,调用到的是后导入的模块的功能。
体验:模块1代码defmytest(a,b):print(ab)模块2代码defmytest(a,b):print(ab)导模块和调功能代码frommymodule1importmytestfrommymodule2importmytestmytest函数是模块2中的函数mytest(1,1)1。3模块的定位顺序
当导入一个模块,Python解析器对模块位置的搜索顺序是:
1。当前目录
2。如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。
3。如果都找不到,Python会察看默认路径。UNIX下,默认路径般为usrlocallibpython
模块搜索路径存储在system模块的sys。path变量中。变量包含当前目录,PYTHONPATH和由安装过程决定的默认目录。
注意的件名不要和已有模块名重复,否则导致模块功能用法使用使用from模块名import功能的时候,如果功能名字重复,调用到的是最后定义或导入的功能。1。4all
如果一个模块文件中有all变量,当使用fromxxximport导入时,只能导入这个列表中的元素。
mymodule1模块代码:all〔testA〕deftestA():print(testA)deftestB():print(testB)
导入模块的文件代码:frommymodule1importtestA()testB()
二、库
严格来说,Python中没有库(library)的概念,模块(module)和包(package)才是Python语法中有的概念。这个库的概念是从其他编程语言引进来的,库的概念是具有相关功能模块的集合,只是一个通俗的说法。平时说的库既可以是一个模块,也可以是一个包。
包和模块之间的关系,如下图:
一个包里面可以包含很多的模块。模块是一个包含有组织的代码片段,一个。py文件对应一个模块,文件名就是模块名(去除掉后缀。py)。三、包
包将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为init。py文件,那么这个文件夹就称之为包。3。1制作包
〔New〕〔PythonPackage〕输入包名〔OK〕新建功能模块(有联系的模块)。
注意:新建包后,包内部会自动创建init。py文件,这个文件控制着包的导入。
3。1。1快速体验
1。新建包mypackage
2。新建包内模块:mymodule1和mymodule2
3。模块内代码如下mymodule1print(1)definfoprint1():print(mymodule1)
mymodule2print(2)definfoprint2():print(mymodule2)3。2导入包
3。2。1方法一:import包名。模块名包名。模块名。标
3。2。2快速体验importmypackage。mymodule1mypackage。mymodule1。infoprint1()
3。2。3方法二
注意:必须在init。py件中添加all〔〕,控制允许导的模块列表。from包名import模块名。标
3。2。4快速体验frommypackageimportmymodule1。infoprint1()
众神,在此相遇敦煌,扼守着河西走廊最西端的门户。两千多年前,正是张骞在出使西域的征途中途经此地,才开始了后世丝绸之路的繁荣昌盛。作为西连塔克拉玛干沙漠,北邻蒙古高原,南接青藏高原的交通……
实测花9元即可购买虚假IP属地服务,国内外地址均可造假4月中旬起,微博、微信和抖音等互联网平台纷纷上线IP属地功能。但红星资本局发现,IP属地功能背后,竟隐藏着一些虚假代理的灰产交易。5月6日,红星资本局在闲鱼平台花费9元购……
如何评价两位开国将领?毛主席徐向前是母鸡,粟裕是大惊喜前言毛主席的用人艺术有多么出神入化?相信就算您不是熟读历史的爱好者,但是对于毛主席的功绩或多或少都略有耳闻,这位改天换地,创造了新中国的第一人,对于选什么人?选了之……
美丽无人赞美头条创作挑战赛冬天的寒流消失得无影无踪,温暖的春天翩然而至,河边的一枝梅花已盛开,仿佛感知了新的生活。当你悄悄地来到惠山古镇的小河边,站在那里望着春光明媚的景色,潺潺的流……
同框!巩立姣称谢霆锋为儿时偶像,现身公园和老大爷一起运动巩立姣,作为当今中国田径队的领军人物之一,在东京奥运会的铅球比赛中最终圆梦成功获得冠军,自己职业生涯也是集齐奥运会金银铜三块奖牌,虽然已经32周岁,但是巩立姣明确表示,自己将继……
就在明天,三颗小行星直奔地球明天起将陆续有三颗小行星逼近地球,最大者直径比伦敦眼还大先前《触mii》就曾报导过,12月将有一颗超大小行星靠近地球,不过在那之前,美国太空总署(NASA)也发现从明天(……
游戏日报Tian离开FPX!OW女制作人谈前上司!CSGO联每天一篇游戏资讯汇总,为你带来最新鲜,最劲爆的游戏资讯。足不出户看尽圈内大事小事,成为游戏圈中的百事通。新的一年,所长会继续努力把优质的内容带给大家!游戏电竞Tian宣布离开F……
联想初心何在喝茶聊聊天气刚刚联想如何活成了全民讨厌的对象!!!近日,司马先生手撕柳先生引爆全网,让众人见到了一个不一样的联想。想当初,联想创立,众志成诚,柳先生联手倪院士终于让……
GTA三部曲终极版首个更新上线!修复50多项问题R星之前承诺将会推出更新修复《GTA三部曲终极版》目前存在的各种问题,现在游戏很快就迎来了首个重要更新,游戏的1。02版本补丁现已上线PS4、PS5、XSXS和XboxOne平……
中国这10个超冷门的小众古镇,景美幽静,淳朴自然,你去过几个中国那么大藏着一些闺中的娟秀古镇风景不亚于乌镇,却鲜为人知青砖黛瓦、古街幽弄这9个冷门小镇古迹厚重,时光缓慢给人带来宁静的力量01hr……
艾草可以护眼?耳朵贴个豆就能改善假性近视?艾草很常见,你知道她还能保护眼睛吗?艾草是一味很常见的中药,有活血化瘀、促进血液循环的效果。如何合理利用艾草呢?我们可以用艾草熏蒸双眼,促进血液循环,在一定程……
女排冠军少帅接班蔡斌!朱婷变瘦了撒贝宁合影1米98婷队变娇小中国女排新帅确定为蔡斌,意味着他将从江苏女排主帅职位卸任。蔡斌的接任者如今已经确定,为江苏青年女排教练施海荣。相对而言,蔡斌的压力要比施海荣大很多,2022年中国女排有冲击世锦……