python笔记(一): 面向对象

C语言基础语法(多次执行一次编译, 面向过程, 显式声明数据类型), 个人感觉如果不会不影响入门python
(万物皆对象
相同的特征(属性)和行为(方法)对象的抽象定义(对象的模版

万物皆对象
整数是int
类对象, 小数是float
类对象, 函数function
类对象, 类是type
对象
不同对象都通过标识符命名
对象有什么用呢~
使用python实现软件时:
应该达到健壮性, 适配性, 重用性的目标
健壮性: 输入预期输入能产生对应输出, 并有能力处理异常输入
适配性: 适应硬件环境或操作系统平台变化
重用性: 相同代码可以在不同系统或不同程序中使用
并且遵循模块化, 抽象, 封装的原则
模块化就是软件系统的不同组件需要分成独立功能单元的组织原则. 好处是: 方便测试和调试, 方便bug跟踪修改, 有利于提高软件重用性
抽象就是提取复杂系统中的基础部分, 清晰命名和描述功能. 好处是: 减少代码冗余, 方便代码重用, 提高程序健壮性和重用性
封装就是保证软件系统组件实现不呈现内部实现细节, 能够保密, 不用过多关心内部实现. 好处是: 方便功能修改, 简化bug修复, 还能同时保证健壮性和适配性
可以遵循设计, 实现, 测调的步骤
设计: 在“做什么”的基础上,解决软件“怎么做”的问题
实现: 用代码描述"怎么做"方法
测调: 验证实现是否正确, 修改不正确的地方
模块化: Python中对模块化有利支持就是: 一个模块文件
.py
封装了一组关系相近的函数与类鸭子类型, 假定对象支持某种类型一系列行为, 如果执行过程中没问题, 那么就是这个类型的对象(看到一个鸟, 走起来, 游起来, 叫起来都像鸭子, 那就叫它鸭子); 还可以定义ABC(抽象基类)

函数封装, 类封装和非公有机制(受保护成员
_name
和私有属性成员__name
e.实现步骤的问题/方法/工具
设计阶段
问题: 数据分类(有什么对象, 怎么拆分类, 类之间联系, 类需要表示那些行为和动作)
方法: 根据职责划分, 尽量保持独立, 精准定义行为
工具: 类图(类, 特征, 行为, 关联), 伪代码(自然语言+高级程序语言, 描述数据结构与代码)

实现阶段
问题: 代码可读性差, 功能难以理解
方法: 统一代码风格, 编写模块文档, 函数文档, 类文档
工具: PEP(Python Enhancement Proposals), IDE
测调阶段
问题: 软件正确性难以保证, 软件错误不好定位
方法: 单元测试和断点调试
工具: pycharm(一种pythonIDE, 支持断点调试), unittest(python单元测试工具)

自学笔记~
如果有错~
期待大佬指出~
感谢帮助提升~