模块
模块是Python程序架构的一个核心概念
- 模块好比是 ** 工具包** ,要想使用这个工具包中的工具,需要使用 **import **这个关键字进行导入这个工具包
- 每一个以扩展名 **py **结尾的 Python 源代码文件都是一个模块
- 在模块中定义的全局变量、函数都是模块能够提供给外界直接使用的工具
模块示例
先定义一个模块 cal.py ,里面一个add 方法和 reduce 方法,以及一个变量name
在hello3.py 文件中调用刚创建的模块
打印结果如下:
**小结
**
- 可以在一个 Python 文件中定义变量 或者函数,然后在 另外一个文件中使用 import 导入这个模块
- 导入之后,使用 模块名.变量 / 模块名.函数 的方式,进行调用
- **模块可以让代码方便的被 **复用
**模块名也是一个标识符
**
- 标示符可以由 字母、下划线 和数字组成
- 不能以数字开头
- 不能与关键字重名
注意:如果在给 Python 文件起名时,以数字开头 是无法在 Pycharm 中导入这个模块的
**
- 浏览程序目录会发现一个pycache的目录,目录下有一个** cal.cpython-38.pyc文件,cpython-38** 表示Python解释器的版本
- 这个** pyc文件是由 Python 解释器将模块的源码** 转换为** 字节码**
- Python 这样保存 字节码 是作为一种启动 速度的优化
字节码
- Python 在解释源程序时是分成两人步骤的
- 首先处理源代码,编译生成一个二进制字节码
- 再对** 字节码进行处理,才会生成CPU**能够识别的机器码
- 有了模块的字节码文件之后,下一次运行程序时,如果在上次保存字节码之后 没有修改过源代码 Python 将会加载** .pyc**文件并跳过编译这个步骤
- 如果又修改了源代码,下次程序运行时,字节码将自动重新创建
from ... import ...
模块提供了类似名字空间的限制,允许 Python 从模块中导入指定的符号(变量、函数、类等)到当前模块。导入后,这些符号就可以直接使用,而不需要前缀模块名。
示例: 还是在 hello3.py 文件中导入刚刚的cal 模块
包
- 包是一个 包含多个模块的 **特殊目录 **
- 目录下有一个 特殊的文件**init.py**
- 包名的命名方式和变量名一致,小写字母+ _
好处:使用 import 包名,可以一次性导入包 中所有的模块
**常见的包结构
**
pakageName-------__init__.py-------moduleName1.py-------moduleName2.py------- ...
注:包路径下必须存在init.py 文件
**示例: 建立一个名为 ani 包,手动创建一个名为init.py 的空文件, 创建cat 模块和 dog 模块,并分别写一个 eat 函数
**
然后在 hello3.py 文件中调用** (方式一)**
然后在 hello3.py 文件中调用(方式二)****
****注:导包建议采用此种方式,代码简洁,明了。****包中需要导入的模块越多 或者 名称越长,此种方法效果越好
- 模块
+关注
关注
7文章
2587浏览量
46917 - python
+关注
关注
53文章
4748浏览量
83951 - 程序架构
+关注
关注
0文章
4浏览量
1393
发布评论请先登录
相关推荐
评论