包(文件夹),模块(文件),类,函数、变量(类本身的特性)。
C++,JAVA之类的建议一个文件只能写一个类,文件名与类名相同,那是因为它们没有将文件理解为模块,在python中一个模块可以有多个类,模块下也可以写函数、变量,业务逻辑等。
一个包下还可以包含子包,包类似于文件夹,但是一个文件夹并不等于一个包,要想让一个文件夹作为python的包,该文件夹下必须包含 __init__.py 文件,该文件也是一个模块,可以不写代码,仅用来标注包,也可以写代码。对于一个模块来说,它的名字就是包名.文件名,但是init模块的名字就是包名。
import 模块名;import只能导入模块,而不能直接导入模块下的变量,要在一个模块下使
用另一个模块中的变量,需要使用模块名.变量名来访问。
如果不想用*导入所有的,则在被导入的模块开头添加__all__=开放给别的模块可以通过*导入的变量名列表。
from t.c7 import a,c ,可以利用\换行,也可以利用()的内括性换行。
__init__.py 文件:当一个包被导入时(inport t) 或该包下的某一个模块(from t.c7 import a),
__init__文件被 python 首先并自动执行,所以该模块常用来进行初始化,也可以用来做库的
批量导入,然后在需要库的模块中, import 一下包,就可以了。
包和模块是不会被重复导入的
建议:要避免循环导入
Python 中导入一个模块就会执行该模块的所有代码。