Python学习之旅 读书笔记系列
Day 7
《Python编程从入门到实践》
第9章 类
知识点
- 面向对象编程,定义类的通用行为,实例化
- 使用类可以模拟任何东西
- 创建类 class 类名() """...""" def init(self,形参2,形参3)
- 类名首字母要大写
- 要编写文档字符串描述功能
- 类的函数称为方法
- 形参1为self,必不可少,且要放在最前面
- init 开头和末尾各有下划线,避免发生名称冲突
- 访问类的属性和调用方法(记得采用描述性名称)
- 访问属性 句点表示法 self.属性
- 调用方法 句点调用任何方法 .()
- 根据类可以创建任意数量的实例,存储在不同变量中
- 使用类和实例
- 给属性指定默认值:每个属性必须有初始值,0或空字符串亦可
- 修改属性值:
- 直接通过实例修改(最简单) 类.属性 = 实例
- 通过方法设置: 定义函数 -> 方法(类中),传递给方法
- 通过方法递增:属性值递增特定量 类.属性 += 实例
- 继承
- 利用现成类,子类可继承父类所有属性和方法,还可定义自己的
- class 子类(父类):
- def init(self, 形参2,形参3)
- super().init(形参2,形参3) (需缩进)
- 创建子类注意:
- 父类必须包含在当前文件中,且在子类前面
- 必须括号内指定父类的名称
- 给子类定义属性和方法
- 放在super()语句下方
- 可重写父类的方法
- 重写弃其糟粕,定义同一方法(重名)
- Python只会使用子类的,忽略父类的
- 大类拆分小类
- 类越来越长,可将需要的部分作为独立的类提取出来
- 模拟实物
- 根据实物特性,选择类的使用
- 无对错,只有效率差异,多实践
- 利用现成类,子类可继承父类所有属性和方法,还可定义自己的
- 导入类(有效编程方式,可使用类所有功能,且存储独立,可专注主程序逻辑)
- 单个类: from 模块 import 类 (1个模块可存储多个类)
- 导入多个类:from 模块 import 类1,类2(任意数量)
- 导入整个模块:import 模块 (用句点访问类,更清晰)
- 导入所有类:from 模块 import * (不推荐,名称易冲突;句点可清楚知道哪些地方导入了模块)
- 跨模块导入:from 模块1 import 类1; from 模块2 import 类2
- Python标准库
- Python自带的一组模块,安装是包含
- from 模块名 import 类
- 标准库多熟悉了解可用的常见情形的模块
- 也可下载外部模块
其他
- 理念
- 面向对象编程可培训逻辑思维能力
- 自定义工作流程
- 一开始尽可能让代码结构简单
- 确定一切正常运行后,再将类移到独立模块中
- 先编写出可行代码,再尝试组织有序
- 注意事项(类的编码风格:驼峰命名法)
- 1.类名每个单词首字母都大写,不使用下划线
- 2.实例名和模块名都采用小写格式,单词间加下划线
- 3.每个类都要紧跟文档字符串描述功能
- 4.每个模块也应包含文档字符串描述功能
- 5.空行不要滥用:类中使用1个空行分隔方法,模块中使用2个空行分隔类
- 6.需同时导入标准库和其他时,优先import标准库模块,再添加1个空行,然后才导入其他模块