主要从以下三个方面讲述类:
(1)什么叫面向对象,为什么要面向对象?
(2)Python类的三大特性:封装、继承、多态。
(3)类的基本概念。
(4)类的例子和关键点解释。
1. 什么叫面向对象,为什么要面向对象?
将大家共有的特性剥离出来进行抽象的过程就是面向对象,这是“面向对象”最直观的理解。面向对象
个人理解,类就相当于一个函数,只不过“这些函数”具有可继承等好处。为了和函数有所区别,不易混淆,那就要做得复杂点,让大家重视起来!!。。。针对,类里面有很多对象的时候,这个就凸显出类定义的好处。
2. Python的三大特性:封装、继承、多态。
- 封装:抽象出对象的属性或功能,形成(即封装成)一个有机的整体(即类)。将内部实现包裹起来,对外透明,提供api接口进行调用的机制。封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员。
- 继承:就是子类可以继承父类的变量和方法。例如Animal是父类,有手、脚的属性;Cat是子类,也有手、脚的属性,不需要额外定义,只需要继承就可以了。
- 多态:根据对象类型的不同以不同的方式进行处理。
多态:就是子类的属性或功能可以覆盖掉父类的属性或功能。例如Animal是父类,有手、脚的属性;Cat是子类,也有手、脚的属性。当Cat继承父类Animal的属性,Cat也可以自己定义手、脚的属性,从而形成多种多样的属性。
3. 类的基本概念。
一些专业术语概念,既然有面向对象编程这个高大上的定义了,自然要搭配一些高大上的概念。
- 类(Class): 用来描述具有相同属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。其中的对象被称作类的实例。
- 实例:也称对象。通过类定义的初始化方法,赋予具体的值,成为一个”有血有肉的实体”。
- 实例化:创建类的实例的过程或操作。
- 实例变量:定义在实例中的变量,只作用于当前实例。
- 类变量:类变量是所有实例公有的变量。类变量定义在类中,但在方法体之外。
- 数据成员:类变量、实例变量、方法、类方法、静态方法和属性等的统称。
- 方法:类中定义的函数。
- 静态方法:不需要实例化就可以由类执行的方法
- 类方法:类方法是将类本身作为对象进行操作的方法。
- 方法重写:如果从父类继承的方法不能满足子类的需求,可以对父类的方法进行改写,这个过程也称override。
4. 类的例子和关键点解释。
class studetn:
# 定义一个类名为studetn
def __init__(self,idx):
# 定义初始化构造,这里使用init,还有别的属性比如reversed,iter之类的
self.idx=idx
# 初始化变量,方便继承
def runx(self):
# 定义运行函数,从上面继承变量
print self.idx
# 打印出idx的值,或者做一些别的处理
time.sleep(1)
a=studetn('a')
a.runx()
# 这是类的调用,一定要记得类的使用方法,首先传入参数,类赋值给一个变量a
# 然后调用这个类下面定义的函数
(1)"init" 方法为Python中的构造方法,用于初始化我们的类,也就是初始化我们希望的共有属性,同时构造方法中可以执行该类中其他的函数。
(2)self是一个形式参数,为该类的实例化对象,例如 a = My_Class() 中,可以理解a就是self参数。
(3)创建对象时,类的后面需要加括号,即完成类的实例化,同时Python会自动查找该类中的构造方法。
(4)类中如果定义了多个功能函数,那么这些函数可以称之为该类实例化对象所拥有的方法。
参考:https://www.jianshu.com/p/331acd35e722
多态的理解还可以参考:https://www.liaoxuefeng.com/wiki/1016959663602400/1017497232674368