美文网首页
04面向对象编程(OOP)

04面向对象编程(OOP)

作者: 雪梦_93d4 | 来源:发表于2020-07-12 16:27 被阅读0次

    默认情况下,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

    实例属性和类属性

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

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

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

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

    相关文章

      网友评论

          本文标题:04面向对象编程(OOP)

          本文链接:https://www.haomeiwen.com/subject/jazgcktx.html