「」看完这篇文章,你的Python基础就差不多了( 七 )
新式类:以 object 为基类的类 , 推荐使用
经典类:不以 object为基类的类 , 不推荐使用在 Python 3.x 中定义类时 , 如果没有指定父类 , 会 默认使用 object作为该类的 基类 —— Python 3.x 中定义的类都是 新式类 , 在 Python 2.x 中定义类时 , 如果没有指定父类 , 则不会以 object 作为 基类 。为了保证编写的代码能够同时在 Python 2.x 和 Python 3.x 运行!今后在定义类时 , 如果没有父类 , 建议统一继承自 object:class 类名(object):passobject 是 Python 为所有对象提供的 基类 , 提供有一些内置的属性和方法 , 可以使用 dir(object) 函数查看 。3.2 多态
面向对象三大特性:
封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则
继承 实现代码的重用 , 相同的代码不需要重复的编写 设计类的技巧 子类针对自己特有的需求 , 编写特定的代码
多态 不同的 子类对象 调用相同的 父类方法 , 产生不同的执行结果 增加代码的灵活度 以 继承 和 重写父类方法 为前提 调用方法的技巧 , 不会影响到类的内部设计多态 更容易编写出出通用的代码 , 做出通用的编程 , 以适应需求的不断变化!
案例:在 Dog 类中封装方法 game:普通狗只是简单的玩耍定义 XiaoTianDog 继承自 Dog , 并且重写 game 方法:哮天犬需要在天上玩耍定义 Person 类 , 并且封装一个 和狗玩 的方法:在方法内部 , 直接让 狗对象 调用 game 方法
文章图片
文章图片
多态示例
Person 类中只需要让 狗对象 调用 game 方法 , 而不关心具体是 什么狗 。
4. 类属性和类方法4.1 类的结构
通常会把:创建出来的 对象 叫做 类的实例创建对象的 动作 叫做 实例化对象的属性 叫做 实例属性对象调用的方法 叫做 实例方法每一个对象 都有自己独立的内存空间 , 保存各自不同的属性多个对象的方法 , 在内存中只有一份 , 在调用方法时 , 需要把对象的引用传递到方法内部
文章图片
文章图片
各个不同的属性 , 独一份的方法
在 Python 中 , 类是一个特殊的对象 。
Python 中 一切皆对象:
class AAA: 定义的类属于 类对象 obj1 = AAA() 属于 实例对象
在程序运行时 , 类同样会被加载到内存在程序运行时 , 类对象在内存中只有一份 , 使用 一个类可以创建出很多个对象实例除了封装实例的属性和方法外 , 类对象还可以拥有自己的属性和方法——类属性、类方法 , 通过 类名. 的方式可以 访问类的属性 或者 调用类的方法
文章图片
文章图片
类的结构4.2 类属性和实例属性
类属性 就是 类对象中定义的属性通常用来记录与这个类相关的特征类属性不会用于记录具体对象的特征示例:定义一个 工具类 , 每件工具都有自己的 name:需求 —— 知道使用这个类 , 创建了多少个工具对象?
文章图片
文章图片
属性的获取机制
在 Python 中 属性的获取 存在一个 向上查找机制
推荐阅读
- 「」哪家18W PD快充方案最受欢迎?看完这个报告秒懂
- 「」高盛预计 iPhone 12 将延迟到 11 月初推出
- 「年度」年度旗舰∶Oneplus 8 Pro
- 「屏幕」华为正研究两款透过滑屏增大屏幕的手机
- 『』新家装不是“避风港”,而是“出海口”
- 【】人工智能突破三维矢量全息新技术
- ##冒用绍兴公司名头 这个虚假理财平台骗了不少人
- 「地球」距离地球630光年的地方,下起了“铁雨”
- ##发力智慧商业 云从科技与红星云计算达成战略合作
- 「」什么是基础架构即代码和平台即代码?看完就清楚了
