04面向对象编程(OOP)

2020-07-12  本文已影响0人  雪梦_93d4

默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中

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

封装:

把客观事物用抽象的类代表,并且类可以控制自身数据与方法的可见性

既然Student实例本身就拥有这些数据,要访问这些数据,就没有必要从外面的函数去访问,可以直接在Student类的内部定义访问数据的函数,这样,就把“数据”给封装起来了

封装类的数据和逻辑,不用知道内部实现的细节

继承:

当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。

子类获得了父类的全部功能,子类也可以定义自己的属性和方法

多态:

同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果

父类或接口声明的变量可以引用子类对象,这就叫多态

应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。//继承 

派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性可维护性。//多态的真正作用

访问限制:

如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问

要访问可以添加get_方法,要获取可以添加set_方法:

class Student(object):

def__init__(self, name, score):

    self.__name = name 

    self.__score = score

实例属性和类属性

千万不要对实例属性和类属性使用相同的名字,因为相同名称的实例属性将屏蔽掉类属性。

实例属性属于各个实例所有,互不干扰;

类属性属于类所有,所有实例共享一个属性;

不要对实例属性和类属性使用相同的名字,否则将产生难以发现的错误。

上一篇 下一篇

猜你喜欢

热点阅读