python 代码通过模块化的方式组织,modules和package就是基本单元,也是为了代码简单,可重用,可维护
Modules
python代码组织是靠modules 和packages。
C语言是.h文件内声明的函数、变量、类。使用的时候,就是include “xxx.h”,然后函数直接调用,类就声明变量。容易有命名冲突的问题。python import 引入一个文件,简化了指定文件名,自带命名空间。
一个系统,需要写多个模块,需要分布在多个文件中。一个.py文件对应一个python modules。
import m1。这是引入一个模块,m1.fun(),这样就可以直接调用。很类似c++里面的一个对象,这里叫模块,而且又像namespace,这里又简化了符号。
namespace对保持代码可读性和可维护性,非常有用。
python自带的标准库,也同样这种方式导入。
除了一些命名限制,没有其他特殊要求,Python文件就可以看作一个模块。
Packages
包就是模块的扩展版,就是一个目录,并且目录下有__init__.py文件。利用目录层级的关系,来形成代码的组织,能省则省。
当模块多了,就用package的模式组织代码。
引用包的时候,可以import xxx,也可以from xxx import yyy。
__init__.py文件是包的初始化模块,当import这个包时,会自动执行里面的代码。
如果要实现from xxx import * ,需要在__init__.py文件里对__all__赋值,
https://realpython.com/python-import/#example-singletons-as-modules