【python】Ch17_模块 module

这是一个最高级的程序组织单元,高级不是在于其功能,而是只它作用域的涵盖范围,是一个可以被重复利用的程序代码封装成一个文件文档的统称,可以用两个内置语句和一个重要的内置函数进行处理:
import ...        # import the module by its name
from ...          # from a module, import something more detail
reload ...        # restarts the name of the module

使用 module 的原因

一个 file 里面的全部变量,命名空间,都可以被 imported 到一个新的 .py file。最后,让多个 module 同时可以被连接到一个更大的 program 里面。

模块至少有三个角色:代码重用,系统命名空间的划分,数据共享

  1. 模块可以在文件中永久保存代码,只要 import 指令还在,下次再开启的时候模块之间就会自动连接并调用功能。模块也是定义变量名的命名空间(最大的空间)。
  2. 模块是 python 中最高级别的程序组织单元。是个有效避免变量名冲突的工具。
  3. 不论引用或是拷贝,从操作的角度来看,模块跨系统之间的功能共享都是很方便的,也可以被多个客户端导入。

Python 程序架构

通常一个程序要完成一件事,都不是一个文件写到底的方式,也全部代码都塞在同一个文件档案里面,而是分而立之:架构把一个程序分割为源代码文件的集合,还有把这些部分连接在一起的方法。当一个模块被 import 语句引用的时候,实际效果就是把模块名赋值给再如的模块对象,如举例:

>>> # file number one
>>> def spam(text):
        print(text, 'spam')

>>> # file number two
>>> import number_one
>>> number_one.spam('gumby')

程序作为一个主体,是由顶层的文件来构造的,可能配合有 0 个或是多个支持的文件。
顶层文件:运行来启动模块的主要文件,包含了主要的控制流程
模块文件:工具的库,用来搜集顶层文件使用的组件

标准库模块:python 内建的文件库,大约有200个模块,包含各式各样的功能,全部都是 import 的方式来实现。

The steps: find the file >>> compile the code >>> execute the content

一旦 import 引用了模块,python 就会开始查找电脑里面的模块位置,一般有一个 default 位置,就是 python 安装文件下的 lib 文件夹。以下是查找顺序:

  1. 程序主目录
    包含程序顶层文件的那个资料夹,或是交互模式应用程式所在的那个资料夹
  2. pythonpath 目录
    这个目录可以让我们定制化的添加,从浅到深搜索 pythonpath 设置的所有目录,这个功能在文件调用的时候跨目录的情况下格外重要,如果今天两个一摸一样的模块被呼叫,最后引用的该模块就是放在比较浅层,最先被找到的那一个
  3. 标准链接库目录
    This is where the standard intrinsic models of python located.
  4. 任何 .pth 文件的内容
    我们也可以创造一个文件附档名为 .pth 去从该档案内容指定路径

sys.pth 里面就是一系列的内置模块引用路径,一旦 python 被运行,pythonpath 和 .pth 里面的文件内容会都被包含进 sys.pth 路径列表 list 里面逐行被执行,故我们可以顺利 import 一个模块。


Compiling

python 会把代码编译成为“字节码”,这个过程是耗时间的环节,为了增加速度,如果我们了解其中转换的肌理,可以直接用字节码去引用模块达到更高的效率。


Executing

变量名赋值 -> 产生模块文件属性 -> 函数赋值 -> 得以调用
Import includes many operations: searching files, compiling codes, and executing files. If we want to reload the module which has been imported previously, there is also a function that can help: reload! reload is also an intrinsic sentense that is easy to be applied to our code.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值