学Python这么久还搞不懂 模块、包和库?
共 788字,需浏览 2分钟
·
2020-01-21 23:24
前些天在知乎回答了一个问题:Python 中模块、包、库的关系,今天带大家看看!
模块
一个.py文件就称之为一个模块(Module),一个模块里可能会包含很多函数,函数命名时,尽量不要与内置函数名字冲突。
常见的内置函数见文章:
Pandas的concat.py模块如下:
里面包括3个函数和1个类
注意:
系统自带了sys模块,自己的模块就不可命名为sys.py,否则将无法导入系统自带的sys模块。检查方法是在Python交互环境执行import abc
,若成功则说明系统存在abc 模块。
包
包(Package)下有多个模块,如下为pandas 的reshape 包,里面包括多个.py 文件。
里面有一个.py文件比较特殊,也是每个包下必须包括的,它是__init__.py
__init__.py
可以是空文件,在此处reshape包下的这个文件就是空的。当然,也可以有Python代码,因为__init__.py
本身就是一个模块。模块__init__.py
的模块名在此处就是reshape
。
可以有多级层次的包结构。比如pandas的core包,含有如下的目录结构:
库
库是指具有相关功能
模块的集合。这也是Python的一大特色之一,即具有强大的标准库
、第三方库
以及自定义模块
。
标准库:python里那些自带的模块
第三方库:就是由其他的第三方机构,发布的具有特定功能的模块。比如2018年最受欢迎的几个库:TensorFlow、pandas、scikit-learn、PyTorch、Matplotlib、Keras、NumPy、SciPy、Apache MXNet、Theano、Bokeh、XGBoost、Gensim、Scrapy、Caffe
自定义模块:用户自己可以自行编写模块,然后使用。
python中导入模块、包都是通过import.