学Python这么久还搞不懂 模块、包和库?

裸睡的猪

共 788字,需浏览 2分钟

 ·

2020-01-21 23:24

前些天在知乎回答了一个问题:Python 中模块、包、库的关系,今天带大家看看!

模块

一个.py文件就称之为一个模块(Module),一个模块里可能会包含很多函数,函数命名时,尽量不要与内置函数名字冲突。

常见的内置函数见文章:

Pandas的concat.py模块如下:

5b4cac684e8a15539636f673b9ed75ad.webp

里面包括3个函数和1个类

注意

系统自带了sys模块,自己的模块就不可命名为sys.py,否则将无法导入系统自带的sys模块。检查方法是在Python交互环境执行import abc,若成功则说明系统存在abc 模块。

包(Package)下有多个模块,如下为pandas 的reshape 包,里面包括多个.py 文件。

e0080a13b30419d1e2ec66cb2ea9f2ab.webp

里面有一个.py文件比较特殊,也是每个包下必须包括的,它是__init__.py

__init__.py可以是空文件,在此处reshape包下的这个文件就是空的。当然,也可以有Python代码,因为__init__.py本身就是一个模块。模块__init__.py的模块名在此处就是reshape

可以有多级层次的包结构。比如pandas的core包,含有如下的目录结构:

326c69e60e3af9b64b33be4cd370b2c7.webp

库是指具有相关功能模块的集合。这也是Python的一大特色之一,即具有强大的标准库第三方库以及自定义模块

标准库:python里那些自带的模块

第三方库:就是由其他的第三方机构,发布的具有特定功能的模块。比如2018年最受欢迎的几个库:TensorFlowpandasscikit-learnPyTorchMatplotlibKerasNumPySciPyApache MXNetTheanoBokehXGBoostGensimScrapyCaffe

自定义模块:用户自己可以自行编写模块,然后使用。

python中导入模块、包都是通过import.

浏览 41
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报