python学习笔记:(十四)面向对象
1、类(class):
用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法
2、类变量:
类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
3、数据成员:
类变量或者实例变量用于处理类及其实例对象的相关的数据。
4、方法重写:
如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写
5、继承:
即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。
6、实例化:
创建一个类额实例,类的具体对象。
7、方法:
类中定义的函数。
8、对象:
通过类定义的数据结构实例。帝乡包括两个数据成员(类变量和实例变量)和方法。
一、类定义
class classname:
statement-1
....
类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性。
二、类对象
类对象支持两种操作:属性引用和实例化
属性引用使用和Python中所有的属性引用一样的标准语法:obj.name
类对象创建后,类命名空间中所有的命名都是有效属性名。
构造方法
很多类都倾向于将对象创建为有初始状态的。因此类可能会定义一个名为__init__()的特殊方法。
类定义了__init__()方法的话,类的实例化查找会自动调用__init__()方法。
三、继承
python同样支持类的继承。
如:class derivedclassname(baseclassname):
statement1
....
注意:
在继承多个基类时,需要考虑基类的显示顺序,因为若是基类中有相同的方法名,而在子类中使用时未指定,python从左至右搜索,即方法在子类中未找到时,从左到右查找基类中是否包含方法。
四、方法重写
如果父类的方法的功能不能满足需求,可以再子类重写父类的方法
五、类属性与方法
1、类的私有属性
__private_attrs:两个下划线开头,声明该属性未私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时self.__private_attrs
2、类的方法
在类的内部,使用def定义为类的方法,与一般函数的区别是,类方法第一个参数必须是self
3、类的私有方法
__private_method:两个下划线开头,声明该方法为私有方法,不能在类的外部调用。在类的内部调用self.__private_methods