0405python中的模块

124 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第14天,点击查看活动详情

1.1 模块的概念和作用

  • 模块是 python 程序架构的一个核心概念。
  • 模块 相当于是一个工具包,要想使用这个工具包中的工具,就需要 导入 import 这个模块。
  • 例如: 每一个以扩展名 py 结尾的 python 源代码文件都是一个 模块
  • 在模块中定义的 全局变量函数 都是模块能够提供给外界直接使用的工具。
  • 模块可以让 曾经编写过的代码 方便的被 复用

1.2模块的快速体验

  • 新建 h_max.py 文件,并且编写以下代码:
def max(a,b):
    if a > b 
        print(a)
    else
        print(b)
name = "小刘"
  • 新建 h_print.py 文件,并且编写以下代码:
import h_max
h_max.max(1,2)
print(h_max.name)

结论:

  • 可以 在一个 python 文件定义 变量 或者 函数
  • 然后在 另外一个文件中 使用 import 导入这个模块
  • 导入之后,就可以使用 模块名.变量 / 模块名.函数 的方式,使用这个模块中定义的变量或者函数 注意: 模块名也是一个标识符
  • 标示符可以由 字母下划线数字 组成
  • 不能以数字开头
  • 不能与关键字重名
  • 如果在给 Python 文件起名时,以数字开头 是无法在 PyCharm 中通过导入这个模块的

1.3 pyc 文件(了解)

Ccompiled 编译过 的意思

操作步骤

  1. 浏览程序目录会发现一个 __pycache__ 的目录
  2. 目录下会有一个 h_max.cpython-35.pyc 文件,cpython-35 表示 python 解释器的版本
  3. 这个 pyc 文件是由 python 解释器将 模块的源码 转换为 字节码
    • python 这样保存 字节码 是作为一种启动 速度的优化

字节码

  • python 在解释源程序时是分成两个步骤的

    1. 首先处理源代码,编译生成一个二进制字节码
    2. 再对 字节码 进行处理,才会生成 CPU 能够识别的 机器码
  • 有了模块的字节码文件之后,下一次运行程序时,如果在 上次保存字节码之后 没有修改过源代码,python 将会加载 .pyc 文件并跳过编译这个步骤

  • python 重编译时,它会自动检查源文件和字节码文件的时间

  • 如果你又修改了源代码,下次程序运行时,字节码将自动重新创建