说python好入手,是因为初级使用简单,但是了解清楚内在机制,还是需要花一定心思的。
模块
模块是这里面最小的单元,是.py后缀的文件,里面可以定义常量和函数,通过import来导入。
模块分为三种:
- 自定义模块
- 内置标准模块(可以通过 “dir(builtins)” 查看Python中的内置标准模块)
- 开源模块(第三方,需要用import导入)
模块:本质就是以.py结尾的python文件 (文件名:test.py,对应的模块名:test),是用来从逻辑上组织python代码(变量,函数,类,逻辑:模块的本质是为了实现一个功能)。
在导入模块的时候,模块所在文件夹会自动生成一个__pycache__\module_name.cpython-35.pyc文件。
“import module_name” 的本质是将"module_name.py"中的全部代码加载到内存并赋值给与模块同名的变量写在当前文件中,这个变量的类型是’module’;<module ‘module_name’ from ‘E:\PythonImport\module_name.py’>
包
包体现了模块的结构化管理思想,包由模块文件构成,将众多具有相关功能的模块文件结构化组合形成包。从编程开发的角度看,两个开发者A和B由可能把各自开发且功能不同的模块文件取了相同的名字。如果第三个开发者通过名称导入模块,则无法确认是哪个模块被导入了。为此,开发这A和B可以构建一个包,将模块放到包文件夹下,通过“包.模块名”来指定模块。示例:
import 包名称.模块名称
一个包文件一般由__init__.py和其他诸多.py文件构成。该__init__.py内容可以为空,可以写入一些包执行时的初始化代码。init.py是包的标志性文件,Python通过一个文件夹下是否有__init__.py文件,来识别促文件夹是否为包文件。
包:本质就是一个目录(必须有__init__.py文件),是用来打包多个模块(.py文件),如果想要导入一个包就是解释(执行)这个包下的__init__.py文件。
“import package_name"导入包的本质就是执行该包下的__init__.py文件,在执行文件后,会在"package_name"目录下生成一个"pycache / init.cpython-35.pyc” 文件。
库
Python中的库是借用其他编程语言的概念,没有特别具体的定义,Python库着重强调其功能性。在Python中,具有某些功能的模块和包都可以被称作库。模块有诸多函数组成,包由诸多模块机构化组成,库中也可以包含包、模块和函数。
参考链接
https://www.jianshu.com/p/6b79c1f32ac7
http://www.360doc.com/content/18/0827/10/11881101_781534193.shtml