• 面向对象-封装


    封装

      字面意思 把什么东西装到容器中封闭起来

      与隐藏有相似之处,当不是单纯的隐藏

      官方解释:对外部隐藏实现细节,并提供简单的使用接口

      

      封装的好处

      1 提高安全性 封装关键数据来实现

      2 隔离复杂度 封装一些内部的实现逻辑(方法)来实现

      python中的属性访问权限

      1 公开的(默认)在任何地方都可以访问到

      2 私有的 仅在类的内部可以使用

      

      使用特殊的语法进行封装

        给要隐藏的变量民初前面加上两个下划线__使其变成私有的

      

      封装的原理

        python是通过变形的方式来完成私有化操作

        具体:把双下划线开头的名字,在名字前添加_类名

        发生变形操作是在定义阶段就发生了并且只发生一次

        默认情况下

        子类是无论是类内部还是外部都不能访问父类的私有属性 

        当然你可以强行访问

    访问器与设置器

      私有属性,外界无法使用那就没有意义

      我们可以定义访问方法和设置方法也称之为访问器和设置器

      1 提供对私有属性的访问修改

      2 增加额外的判断

    property

      访问和修改私有属性的写法与普通属性的写法不一致对于使用而言更复杂

      使用property装饰器可以将一个方法伪装成一个普通属性

      这样对于使用者而言,使用方法就一致了

      @property弊端是方法不能怎讲额外的参数只能由一个self

      访问器 @property 用来访问属性时触发 

      设置器 @属性名称.setter 用点来设置属性时触发

      删除器 @属性名称.deleter 用del删除属性时触发

    接口

      interface 接口

      是一组功能集合体

      好处:用于提高程序的扩展性

      接口用于定义一组功能,后续的程序只要按照接口来精选实现就能被实现

      可以将接口理解为一套规范

    抽象类

      抽象在这里指的是不具体,不清晰

      如果一个方法没有实现体那么这个方法可以被称为抽象方法

      如果一改类中存在抽象方法,那么这个类就是抽象类

      作用

        抽象类也是用来提高扩展性的,与接口相似也可以作为一套规范

        比接口强大的地方在与可以强行限制子类必须实现父类中声明的方法

      特点

        抽象类无法直接实例化,只能由子类继承后覆盖所有抽象方法才能实例化对象

      定义方法

        import abc

        class 类名(metaclass=abc.ABCMeta):

          @abc.abstractmethod

          def 函数名(self):

            pass

  • 相关阅读:
    ppt标签打开文件 word标签打开文件 窗口打开文件 粘贴默认方式
    .net 执行sql包含go语句的处理
    vs创建项目模板和项模板
    base64和图片的转换
    Map工具系列-05-添加业务参数工具
    winform刷新UI界面
    System.Diagnostics.Process.Star的用法
    wpf打开文夹和打开文件
    wpf *和auto的区别
    WPF基础到企业应用系列6——布局全接触
  • 原文地址:https://www.cnblogs.com/LinChengcheng/p/10408408.html
Copyright © 2020-2023  润新知