博客地址:IT老兵驿站。
正式使用 Python 也有一年多了,对于 Python 的 module 和 package 却感觉一直没有搞明白,当然,对于这一点,已经查阅过一些资料,有一篇帖子讲的是非常到位的,只是自己一直没有看透,或者换一句话,好像没有好好做做笔记,整理一下,这块知识点就一直没有成为自己知识体系的一员。
参考的帖子地址是:https://realpython.com/python-modules-packages/,讲的非常清楚,这次对它做一些笔记,这次是笔记和原文进行分离,笔记记录的是抽取出来的主旨。
Simplicity:
还是分而治之的理念,简化问题。
Maintainability:
模块便于去维护,最小化了依赖。
Reusability:
提高了重用性。
Scoping: Modules typically define a separate namespace, which helps avoid collisions between identifiers in different areas of a program. (One of the tenets in the Zen of Python is Namespaces are one honking great idea—let’s do more of those!)
约束了范围。
这里的 namespace 还有些没有搞明白。
使用 Python 编写。
使用 C 语言来编写,同时动态加载,如何在运行时动态加载呢?
内建的模块。
包含在解释器里面的内在的模块。
当前目录。
PYTHONPATH 环境变量设置的目录。
Python 安装时配置的依赖目录。
这里涉及到了符号表的概念,如同 C 语言一样。
import
from
from
import
这几种引用方式主要是防止符号表名称污染。
用来展示符号表。
https://realpython.com/python-modules-packages/
https://packaging.python.org/tutorials/packaging-projects/ setup.py 的格式
https://pip.pypa.io/en/stable/reference/pip_install/ pip 的介绍