【代码世界】Python笔记#5 - 面向对象的基本应用

概况
本文介绍Python面向对象的内容, 来自 禾木AI 老师的【Python面向对象编程详解】的学习总结。
通过一个基于员工的类来展开,涉及下列内容
类与实例
类方法与实例方法
继承

一、定义类
定义类,通过class来定义,后面跟的是这个类名 Employee。
二、定义方法
初始化方法
- 定义初始化方法,其中**self**指代的是 该类的当前实例(instance)本身, 其余的参数为相关属性参数。
- 该方法也成为构造方法,创建实例时自动调用。在创建实例时,要输入除self以外参数,然后会将参数值赋给实例
- 这些实例变量在外部改变时,只影响实例本身,不影响其他实例。
实例方法
- 基于self的方法,为实例方法(实例就是new 出来的东西)
类变量
- 可供该类内部的方法使用,使用时加上类名或self,类方法都可以进行访问
- 类变量可在外部修改,但只影响修改的当前实例。
- 该变量可以供每个实例共享
类方法
- 带 `@` 表示这是一个装饰器,@classmethod后面的方法表示类方法
- 类变量的指示符为cls, 表示当前类
- 该类方法,也可以通过实例来进行访问
- 类方法的主要作用是用来创建类实例的
静态方法
- 静态方法不用修饰,表示不依赖任何实例或者类
- 因此静态方法用来做一些通用的工作
特殊方法重写
- 将实例内容输出为字符串而不是内存地址,用于开发调试阶段
继承
- 继承自Employee
- 继承的父子类为是的关系(is), 继承的子类之间是像的关系(like)
多继承的实现
一点理解
类 在我的理解就是,概况化的一个属性和功能集合,像是提取具有相似性质的事物的共同点来封装组合成一个集合。
实例就是这个概况化概念下的一个具体事物,例如学生是一个类,张三就是学生类中的一个具体人;又如鸟是一个类,鸭子就是鸟类中的一个具体物种。
对应的,类会有大有小,例如鸟是一个类,鸭子可以是鸟类中的子类,野鸭又是鸭子类中的又一个子类,阿黄是野鸭的一个实例(一只具体的鸭子)。由于这三个类 都有一些共通点,所以为了避免重复写一些相似的属性代码,就可以让鸭子类继承鸟类的一些属性,野鸭类继承鸭子类的属性,并进而添加属于野鸭类的独特的特性。
规定好一个类之后,直接对这个类起作用的方法为类方法或静态方法(与具体实例无关);而对于具体事物起作用的一些方法,就是实例方法。

以上是关于Python面向对象中的一些介绍和自己在使用中的一些心得记录,供自己查阅也分享给一同学习的朋友,如有不恰当或错误之处,欢迎留言交流,谢谢~