模块的使用
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(解释程序功能和每个文件作用的文件,方便用户的使用和查看)

day16(软件开发目录规范)的更多相关文章

  1. Python记录13:软件开发目录规范

    软件开发目录规范 开发一个软件,一个工程项目,一般应该具备以下的几个基本的文件夹和模块,当然,这并不是一成不变的,根据项目的不同会有一定的差异,不过作为一个入门级的新手,建议暂时按照以下的规范编写: ...

  2. Python 浅谈编程规范和软件开发目录规范的重要性

    最近参加了一个比赛,然后看到队友编程的代码,我觉得真的是觉得注释和命名规范的重要性了,因为几乎每个字符都要咨询他,用老师的话来说,这就是命名不规范的后续反应.所以此时的我意识到写一篇关于注释程序的重要 ...

  3. python 之 软件开发目录规范 、logging模块

    6.4 软件开发目录规范 软件(例如:ATM)目录应该包含: 文件名 存放 备注 bin start.py,用于起动程序   core src.py,程序核心功能代码   conf settings. ...

  4. Python模块:Re模块、附软件开发目录规范

    Re模块:(正则表达式) 正则表达式就是字符串的匹配规则 正则表达式在多数编程语言里都有相应的支持,Python里面对应的模块时re 常用的表达式规则:(都需要记住) “ . ”   #  默认匹配除 ...

  5. python模块导入-软件开发目录规范-01

    模块 模块的基本概念 模块: # 一系列功能的结合体 模块的三种来源 """ 模块的三种来源 1.python解释器内置的模块(os.sys....) 2.第三方的别人写 ...

  6. py 包和模块,软件开发目录规范

    目录 py 包和模块,软件开发目录规范 什么是包? 什么是模块? 软件开发目录规范 py 包和模块,软件开发目录规范 什么是包? 包指的是内部包__init__.py的文件夹 包的作用: 存放模块,包 ...

  7. python基础语法10 函数递归,模块,软件开发目录规范

    函数递归: 函数递归指的是重复 “直接调用或间接调用” 函数本身, 这是一种函数嵌套调用的表现形式. 直接调用: 指的是在函数内置,直接调用函数本身. 间接调用: 两个函数之间相互调用间接造成递归. ...

  8. python浅谈编程规范和软件开发目录规范的重要性

    前言 我们这些初学者,目前要做的就是遵守代码规范,这是最基本的,而且每个团队的规范可能还不一样,以后工作了,尽可能和团队保持一致,目前初学者就按照官方的要求即可 新人进入一个企业,不会接触到核心的架构 ...

  9. day21 模块与包+软件开发目录规范

    目录 一.导入模块的两种方式 二.模块搜索的路径的优先级 三.循环导入 四.区分py文件的两种用途 五.编写一个规范的模板 五.包 1 什么是包 2 为什么要有包 3 包的相关使用 3.1 在当前文件 ...

随机推荐

  1. 亿级用户百TB级数据的AIOps 技术实践之路

    关于面临的挑战 "因为专业性强,我认为反而让交互方式变简单了,打个点餐的比方,软件1.0阶段是,我要吃鱼香肉丝,我要吃辣的或是素一点的,根据清晰的接口上菜.而软件2.0阶段就是,我今天想吃开 ...

  2. py-day1-4 python基本数据类型2

    # replace 替换 text = 'xiaomafafafahaoyunlianlian' v = text.replace('fa','shun') x = text.replace('fa' ...

  3. C++Builder XE7 up1 简单测试

    很久没用BCB了, 新装了BCBXE7up1试试了,发现有点找不到北了,好像与BCB6的一些默认设置项不一样,编译了一个空APP,提示找不到bpl 和 dll. 设置为不带包编译后,还是提示DLL找不 ...

  4. spark集群使用hanlp进行分布式分词操作说明

    本篇分享一个使用hanlp分词的操作小案例,即在spark集群中使用hanlp完成分布式分词的操作,文章整理自[qq_33872191]的博客,感谢分享!以下为全文:   分两步: 第一步:实现han ...

  5. Tensorflow安装环境更新

    本博文是对前面两篇tensorflow的博文的一个继续,对环境的更新. 基于tensorflow的MNIST手写识别 安装tensorflow,那叫一个坑啊 主要出发点: 上述两篇博文的程序运行的环境 ...

  6. [转] LINUX内核代码编程规范

    这是一个简短的文档,描述了linux内核的首选代码风格.代码风格是因人而异的,而且我 不愿意把我的观点强加给任何人,不过这里所讲述的是我必须要维护的代码所遵守的风格, 并且我也希望绝大多数其他代码也能 ...

  7. Aasible中cryptography兼容性报错解决办法

    Aasible中cryptography兼容性报错解决办法 1 Ansible中使用ansible --version查看版本,报错信息如下: ERROR! Unexpected Exception, ...

  8. 关于AXI4-Stream to Video Out 和 Video Timing Controller IP核学习

    关于AXI4-Stream to Video Out 和 Video Timing Controller IP核学习 1.AXI4‐Stream to Video Out Top‐Level Sign ...

  9. ubuntu-docker入门到放弃(五)docker网络管理

    查看docker宿主机的网卡信息我们会发现,有一个docker0的网卡,这个网卡就是用于跟docker容器进行通讯的,这个网段跟我们docker容器的网段是一样的: #ifconfig docker容 ...

  10. 关于JFame 屏幕居中显示的问题

    场景:    在利用 JAVA  的 Swing 开发 C/S 架构 的前端界面 目的:    想让 JFrame 居中显示在整个 屏幕的正中位置 方法一:JFrame frame = new JFr ...