Python知识点总结篇(五)
软件目录结构规范
- 目标:
- 提高可读性;
- 提高可维护性;
- 常见结构
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知识点总结篇(五)的更多相关文章
- Python知识点总结篇(三)
文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量: 通过句柄对文件进行操作: 关闭文件: with:自动关闭文件: with open('log', 'r') as f: ... 文件 ...
- Python知识点总结篇(一)
Python基础 变量 变量类型: 1.数字型 整形:int: 浮点型:float: 布尔型:bool,True和False: 复数型:complex: 2.非数字型 字符串: 列表: 元祖: 字典: ...
- Python知识点总结篇(二)
列表 列表:一个值,包含多个字构成的序列,用[ ]括起来,[]是一个空列表,不包含任何值,类似于空字符串,负数下标表示从后边开始,-1表示列表最后一个下标,它是一种可变的数据类型,值可以添加.删除或改 ...
- Python知识点总结篇(四)
递归 特性 必须有明确的结束条件: 每进入深一层递归,问题规模比上层应有所减少: 递归效率不高,层次更多会导致栈溢出: def calc(n): print(n) if n // 2 > 0: ...
- 第六篇:Python函数进阶篇
在了解完了 Python函数基础篇之后,本篇的存在其实是为了整合知识,由于该篇的知识是否杂乱,故大家可以通过点开点连接直接进入其详细介绍,该篇主要大致的介绍一下几个知识点: 一.Python的迭代器 ...
- 自学笔记系列:《Python学习手册 第五版》 -写在开始之前
今年双十一,在当当网上买了这本书,很厚很厚的一本书,大概有将近1700页左右,的确是一个“大工程”, 关于这本书的学习,我想采用一种博客的方式进行,既是写给自己,也想分享给每一个对Python学习感兴 ...
- Python知识点汇总
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- Python学习笔记(五)
Python学习笔记(五): 文件操作 另一种文件打开方式-with 作业-三级菜单高大上版 1. 知识点 能调用方法的一定是对象 涉及文件的三个过程:打开-操作-关闭 python3中一个汉字就是一 ...
- python自动华 (五)
Python自动化 [第五篇]:Python基础-常用模块 目录 模块介绍 time和datetime模块 random os sys shutil json和pickle shelve xml处理 ...
随机推荐
- MySQL避免插入重复记录:唯一性约束
mysql在存在主键冲突或者唯一键冲突的情况下,根据插入策略不同,一般有以下三种避免方法.1.insert ignore2.replace into3.insert on duplicate ke ...
- Java 整数间的除法运算如何保留所有小数位?
1.情景展示 double d = 1/10; System.out.println(d); 返回的结果居然是0.0!这是怎么回事儿? 2.原因分析 第一步:你会发现用运算结果也可以用int类型接 ...
- NULL与nullptr
[https://blog.csdn.net/weixin_40237626/article/details/82560012] 其实啊,在编译器进行解释程序时,NULL会被直接解释成0,所以这里的参 ...
- Django纪要
Django流程 mvt 创建工程 路由的引导 web 应用程序b发送请求 -->uwsgi-->Django框架-->接收请求处理业务逻辑返回响应-->b本质 接收请求 业务 ...
- jsch配置sftp服务器ssh免密登录
前期对接了一个通过ssh免密登录的需求,是基于原先密码登录sftp服务器的代码上进行改造,实际上代码改动量非常少,趁此机会对自己整理的资料做一下总结. 1. 什么是SFTP SFTP是一个安全文件传送 ...
- vue动态绑定class的几种方式
对象方法 -最简单的绑定(这里的active加不加单引号都可以,以下也一样都能渲染) :class="{ 'active': isActive }" 判断是否绑定一个active ...
- easyui datagrid的行编辑器editor 如何实现新增时可修改,编辑时,不可修改
项目出现一个需求,要求用户界面的用户名,新增时,可自由输入,编辑时,不可修改 html页面 <table id="gridlist" data-bind="data ...
- Laravel 控制器 Controller
一.控制器存在的意义 路由可以分发请求:路由中还可以引入 html 页面:我们可以在 route/web.php 中搞定一切了:但是如果把业务逻辑都写入到路由中:那路由将庞大的难以维护:于是控制器就有 ...
- springMVC 数据模型相关注解 可注释类型 ModelAttribute SessionAttributes InitBinder
ModelAttribute 参数/方法SessionAttributes 类InitBinder 方法
- django文章对本项目有用的收集
1.在django中使用自定义标签实现分页功能 https://www.cnblogs.com/MnCu8261/p/5943609.html https://www.cnblogs.com/bail ...