Python项目的组织结构
包→模块→类→函数和变量
一个文件夹代表一个包
一个文件代表一个模块
一个class代表一个类
命名空间:包名.子包名.模块名.类
将一个文件夹变成一个包,这个文件夹必须有一个,init.py 文件(模块)
init.py 文件可以为空,只做标注包
没有 包名.init 这个命名空间
调用其他模块的内容
同包内部
import 模块名
调用时 print(模块名.变量名)
不同包内部
import 包名.模块名
调用时 print(包名.模块名
调用后会生成一个__pycache__文件夹里面包含一个模块名.cpython-36.pyc文件
模块名.cpython-36.pyc 是一个自解码文件
此方法import 只能到达模块
另外可以写成
import 包名.模块名 as m
调用时 print(m.变量名)
调用变量另一种方法:from
from 包名.模块名 import 变量名
调用时 print(变量名)
from 包名 import 模块名
调用时 print(模块名.变量名)
from 包名.模块名 import *
调用时 print(变量名)
调用多变量,但不推荐
from 包名.模块名 import *
调用时 print(变量名)
在被调用模块中添加一行代码__all__ = [变量名1,变量名2,变量名3]
其中,列表变量为可以让其他人调用的变量
vscode快捷键:
在常规设置内找到files.exclude可以将不需要的文件隐藏
一次导入多个模块或变量
from 包名.模块名 import 变量名1,变量名2,变量名3
python建议,一行代码不得超出80字,编程习惯
一行代码写不开,可以在代码后加\然后换行,不推荐
可以使用括号换行
示例:
from 包名.模块名 import (变量名1,变量名2,
变量名3)
在__init__.py 文件中命令
import 包名(或者包下面的模块等)
就会直接执行在__init__.py 文件中命令
init.py 文件中命令的应用场景
在__init__.py 文件中定义
all = [模块名1,模块名2,模块名3]
调用这个包时,只能调用定义后的模块中的变量
可以将包内模块所需要的通用 调用包import进来
避免多次重复写,也可以跨包调用
import 包名
#调用时
print(包名.模块名.变量名)
包和模块是不会被重复导入的
避免循环导入 1调用2 2就不能再调用1 否则报错 不推荐,编程习惯
import 导入模块后就会执行模块内的代码