python全栈脱产第16天------模块循环导入问题、区分python文件类型的途径、文件的搜索路径、软件开发的目录规范
一、模块的循环导入问题
就是执行文件中被导入文件同时又导入了另一个文件,而调用的变量在调用时又没有被定义
解决方案一:把循环导入的语句放到名字定义的后面
解决方案二:将循环导入语句放到函数中去
二、区分python文件的两种途径
当文件被执行时:__name__=='__main__'
当文件被导入时:__name__=='模块名'
三、文件的搜索路径
优先级:1.内存中加载过的
2.内置模块
3.sys.path(第一个值是当前执行文件所在的文件夹,且所有被导入的模块参照环境变量sys.path都是以执行文件为准的)
方案一:import sys
sys.path.append(r'文件路径')
import 被导入文件名
方案二:from 文件名 import 被导入文件名
绝对导入:以执行文件的sys.path为起始点开始导入,称之为绝对导入
优点:执行文件与被导入文件的模块中都可以使用
缺点:所有导入都是以sys.path为起始点,导入麻烦
相对导入:参照当前所在文件的文件夹为起始点开始查找,称之为相对导入
符号:.表示当前所在的文件夹,..表示上一级文件夹,...表示上上级文件夹
优点:导入更简单
缺点:只能在被导入的模块中使用,不能再执行文件中使用
四、软件开发的目录规范
程序
|
----bin
| |
| ----start.py
|
----conf
| |
| ----setting.py
|
----core
| |
| ----src.py
| |
| ----def register():
| print(‘注册’)
| def login():
| print('登录')
| def shopping():
| print('购物')
| def pay():
| print('支付')
| def transfer():
| print('转账')
| def run():
| print('运行')
|
----db
| |
| ----db.txt
|
----lib
| |
| ----common.py
|
----log
| |
| ----transcation.log
|
Readme