模块的使用
01 模块的循环导入问题
 解决方案一: 把循环导入的语句放到名字定义的后面
 解决方案二: 将循环导入语句放到函数内(先定义确定名称空间)
02 区分python文件的两种用途
 #当文件被执行时__name__=='__main__'
 #当文件被导入时__name__=='模块名'
 # if __name__ == '__main__':    (输入main时可直接出现左边语句) 
 #     f1()
03 模块的搜索路径
 # 模块搜索路径的优先级
  # 1. 内存中已经加载过的
  # 2. 内置模块
  # 3. sys.path #  第一个值是当前执行文件所在的文件夹
 添加路径方式:1 sys.path.append(r'需要添加的模块路径')  (sys.path本质是一个储存有路径的列表)
     2 from dir1.dir2 import m2  (在执行文件同级下寻找dir1,再在dir1下寻找dir2,再在dir2下寻找m2导入)
 注意:模块名绝对不能和内置模块或第三方模块同名
 环境变量是以当前执行文件为准的
  # 强调:所有被导入的模块参照环境变量sys.path都是以执行文件为准的
  方式2中:在一个模块中导入另一个模块,也是以执行文件的环境变量(sys.path)为准的
04 绝对导入与相对导入
 绝对导入: 以执行文件的sys.path为起始点开始导入,称之为绝对导入
         优点: 执行文件与被导入的模块中都可以使用
         缺点: 所有导入都是以sys.path为起始点,导入麻烦
 相对导入: 参照当前所在文件的文件夹为起始开始查找,称之为相对导入
         符号: .代表当前所在文件的文件加,..代表上一级文件夹,...代表上一级的上一级文件夹
         优点: 导入更加简单
         缺点: 只能在被导入的模块中使用,不能在执行文件中用
 注意:执行文件中只能用绝对导入
05 软件开发的目录规范
 ATM (程序存放的总文件,也是项目的名字,所有相关文件军存放在这里)
  bin  (程序开始文件存放地点,就是执行文件的所在地)   
   start.py    (执行文件的文件名,可以有start.py2,和start.py同级)
  conf (存放程序中相关参数的文件的地点,所有相关参数的文件都放在这里)
   settings.py (存放参数的文件,但参数有很多种的时候,可以是多个)
  core (主体核心程序的存放地点,最重要的部分)
   src.py      (主体核心程序,需要是可以有多个)
  db   (需要永久保存数据的地点)
   userinfo.txt(存放用户信息的文件,也可以有存放商品信息的文件等多个文件)
  lib  (存放自定义常用模块的地点)
   common.py   (自定义常用的模块1,可以有多个2,3,4,....)
  log  (存放日志文件的地方)
   transaction.log (日志文件,用于存放交易记录,可以是多个)
  Readme(解释程序功能和每个文件作用的文件,方便用户的使用和查看)

posted on 2018-08-08 15:48  吴之家  阅读(94)  评论(0编辑  收藏  举报