软件目录结构规范

  • 目标:

    • 提高可读性;
    • 提高可维护性;
  • 常见结构
Demo/
|-- bin/    #存放项目的一些可执行文件
|   |-- demo #可执行程序,启动demo调main.py
|
|-- demo/ #存放项目所有源码,源码中所有模块、包都在此处
|   |-- tests/   #存放单元测试代码
|   |   |-- __init__.py
|   |   |-- test_main.py
|   |
|   |-- __init__.py  #空文件,有这个文件就是包,没有就是目录
|   |-- main.py  #程序主入口
|
|-- docs/  #用于存放一些文档
|   |-- conf.py
|   |-- abc.rst
|
|--conf/   #配置文件目录
|
|-- setup.py  #安装、部署、打包的脚本
|-- requirements.txt   #依赖关系,需要依赖的文件,用于存放软件依赖的外部Python包列表
|-- README #项目说明文件
  • README包含内容:

    • 项目简介
    • 功能特性
    • 环境依赖
    • 部署步骤
    • 目录结构描述
    • 版本内容更新
    • 常见问题说明

模块及包导入

  • import本质是路径搜索和搜索路径,导入模块就是把Python文件解释一遍 ,导入包的本质是执行该包下的__init__.py文件;

面向对象

  • 编程范式:实现一个任务有不同方式,对这些不同编程方式的特点进行归纳总结出的编程方式类别称为编程范式,最重要的是面向对象编程和面向过程编程;
  • Class类:对一类具有相同属性的对象的抽象集合;
  • 特性:
    • 封装:将实现功能的细节不对外公开;
    • 继承:代码的重用,分为单继承和多继承;
    • 多态:允许将父对象设置为一个或多个子对象相等的技术,是为了保证类在继承和派生的时候使用族谱中任一类的某一属性时的正确调用,即就是一种接口,多种实现;
  • 析构函数:def __del__(self):实例释放、销毁时自动执行的函数,常用于一些扫尾工作,例如关闭数据库连接,打开的临时文件等;
  • 私有属性与方法:在定义的时候在属性或方法名前加上两道下划线__
  • 经典类与新式类的继承顺序:Python3.x中经典类和新式类都是广度优先继承,Python2.x中经典类是深度优先,新式类时广度有限继承,新式类:class Demo(object)
  • 静态方法:名义上归类管理,实际与类无关,无法访问类或实例中的属性;
  • 类方法:只能访问类变量,不能访问实例变量;
  • 属性方法:把一个方法变成一个静态属性,隐藏实现细节;
  • 反射:通过字符串映射,hasattr(obj, attr_name):判断一个对象里是否有对应字符串的方法映射,getattr(obj, attr_name):根据字符串去获取对象中对应方法的内存地址,setattr(obj, 'str', func2):给对象添加新的属性,delattr(obj,attr_name):删除对象的属性;

异常处理

  • 格式:
try:
    code
except except1:
    code
except except2:
    code
...
except Exception:
    code 
  • 抓错误的时候一定从小的开始抓起,先抓子集,再抓总集,一般不建议一 开始直接抓错误总集;

欢迎关注微信公众号:村雨1943;创作不易,未经同意,转载请注明出处~

Python知识点总结篇(五)的更多相关文章

  1. Python知识点总结篇(三)

    文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量: 通过句柄对文件进行操作: 关闭文件: with:自动关闭文件: with open('log', 'r') as f: ... 文件 ...

  2. Python知识点总结篇(一)

    Python基础 变量 变量类型: 1.数字型 整形:int: 浮点型:float: 布尔型:bool,True和False: 复数型:complex: 2.非数字型 字符串: 列表: 元祖: 字典: ...

  3. Python知识点总结篇(二)

    列表 列表:一个值,包含多个字构成的序列,用[ ]括起来,[]是一个空列表,不包含任何值,类似于空字符串,负数下标表示从后边开始,-1表示列表最后一个下标,它是一种可变的数据类型,值可以添加.删除或改 ...

  4. Python知识点总结篇(四)

    递归 特性 必须有明确的结束条件: 每进入深一层递归,问题规模比上层应有所减少: 递归效率不高,层次更多会导致栈溢出: def calc(n): print(n) if n // 2 > 0: ...

  5. 第六篇:Python函数进阶篇

    在了解完了 Python函数基础篇之后,本篇的存在其实是为了整合知识,由于该篇的知识是否杂乱,故大家可以通过点开点连接直接进入其详细介绍,该篇主要大致的介绍一下几个知识点:  一.Python的迭代器 ...

  6. 自学笔记系列:《Python学习手册 第五版》 -写在开始之前

    今年双十一,在当当网上买了这本书,很厚很厚的一本书,大概有将近1700页左右,的确是一个“大工程”, 关于这本书的学习,我想采用一种博客的方式进行,既是写给自己,也想分享给每一个对Python学习感兴 ...

  7. Python知识点汇总

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  8. Python学习笔记(五)

    Python学习笔记(五): 文件操作 另一种文件打开方式-with 作业-三级菜单高大上版 1. 知识点 能调用方法的一定是对象 涉及文件的三个过程:打开-操作-关闭 python3中一个汉字就是一 ...

  9. python自动华 (五)

    Python自动化 [第五篇]:Python基础-常用模块 目录 模块介绍 time和datetime模块 random os sys shutil json和pickle shelve xml处理 ...

随机推荐

  1. Bzoj 3343: 教主的魔法(分块+二分答案)

    3343: 教主的魔法 Time Limit: 10 Sec Memory Limit: 256 MB Description 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息 ...

  2. FPGA综合的约束

    近日发现,有些逻辑电路的综合时间约束和布局布线约束相差太大时,难以布通.此时,应该选择尽量接近的时钟约束.

  3. CentOS 7.5安装ANSYS 19.2

    源视频链接: https://pan.baidu.com/s/12v2NPi54qvuR4wftAtYsQw 提取码: 9pst

  4. MySQL 是如何利用索引的

    阅读本文大概需要 4 分钟. 一.前言 在 MySQL 中进行 SQL 优化的时候,经常会在一些情况下,对 MySQL 能否利用索引有一些迷惑.例如: MySQL 在遇到范围查询条件的时候就停止匹配了 ...

  5. JavaScript的filter方法

    var ages = [32, 33, 16, 40]; function checkAdult(age) { return age >= 18; } function myFunction() ...

  6. 4款五星级的3D模型资源包

    HI,晚上好各位,今晚我们将为大家介绍4款五星级的3D模型资源包. ANIMALS FULL PACK ANIMALS FULL PACK包含了由PROTOFACTOR制作的24款高质量的动物模型,包 ...

  7. oracle使用Union时遇到列格式clob和varchar2不符,不能转的问题

    其实这个很简单,思路就是把clob转为varchar,在查询的时候使用dbms_lob.substr(coulmn,4000):就可以把指定列从clob转化为varchar2.

  8. Feign进行文件上传+表单调用

    Feigin默认是不支持文件上传和表单提交的,需要做一些配置才能支持. 1.feign依赖 图中红色为form支持必须的jar. 2.添加自定义Encoder类: import static java ...

  9. 小米手机root

    目录 概念 解锁流程 root流程 如何Root? 关于supersu 关于twrp 关于Magisk Manager ref: 申请开发板流程 线刷教程 小米手机root 概念 解锁: 使手机可以刷 ...

  10. ASP.NET Core中的运行状况检查

    由卢克·莱瑟姆和格伦Condron ASP.NET Core提供了运行状况检查中间件和库,用于报告应用程序基础结构组件的运行状况. 运行状况检查由应用程序公开为HTTP终结点.可以为各种实时监视方案配 ...