python面向对象编程

面向对象的三大特点:数据封装、继承和多态

一、类和实例

类是抽象的模板(如student类),实例是根据类创建的一个个具体的“对象”,每个对象拥有相同的方法,各自的数据可能不同。

二、访问限制

实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问

变量名类似__xxx__的,也就是以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的,不是private变量

三、继承和多态

定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class),子类获得了父类的全部功能

当我们定义一个class的时候,我们实际上就定义了一种数据类型,判断一个变量是否是某个类型可以用isinstance()判断

继承可以把父类的所有功能都直接拿过来,这样就不必重零做起,子类只需要新增自己特有的方法,也可以把父类不适合的方法覆盖重写。

四、获取对象信息

1、获得对象的类型:使用  type()函数,若要判断一个对象是否是函数,使用types模块中定义的常量

2、isinstance():判断一个对象是否是该类型本身,或者位于该类型的父继承链上

                              能用type()判断的基本类型也可以用isinstance()判断

判断一个变量是否是某些类型中的一种

3、dir():获得一个对象的所有属性和方法,返回一个包含字符串的list

五、实例属性和类属性

给实例绑定属性的方法是  通过实例变量,或者通过self变量

给类绑定属性   直接在class中定义属性,定义了一个类属性后,这个属性虽然归类所有,但类的所有实例都可以访问到

实例属性和类属性不要使用相同的名字,因为相同名称的实例属性将屏蔽掉类属性,但是当你删除实例属性后,再使用相同的名称,访问到的将是类属性

 

 


版权声明:本文为qq_36767335原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。