zoukankan      html  css  js  c++  java
  • 10.11 组合,封装,多态

    组合

    什么是组合

    组合指的是一个对象中的属性,是另一个对象

    为什么要使用组合

    组合目的和继承一样,是为了减少重复代码

    如何使用组合

    class People:
    	def __init__(self,name,age,sex):
    		self.name = name
    		self.age = age
    		self.sex = sex
    class Teacher(People):
    	def __init__(self,name,age,sex):
    		super().__init__(name,age,sex)
    class Student(People):
    	def __init__(self,name,age,sex)
    		People.__init__.get(name,age,sex)
    

    封装

    什么是封装

    指把一堆属性封装到一个对象中.
    存数据是为了取,对象可以以.的方式获取属性.

    为什么要封装

    封装的目的是为了方便存取,可以通过对象.属性的方式获取属性.

    如何封装

    特征:变量→数据属性
    技能:函数→方法属性
    在类内部,定义一堆属性,通过对象.属性 = 属性值的方式调用

    访问限制机制

    什么是访问限制机制

    在类内部定义,凡是以__开头的数据属性与方法属性,都会被python内部隐藏起来,让外部不能直接访问内部的__开头的属性.

    访问限制机制的目的

    一堆隐私的属性与不能被外部轻易访问的属性,可以隐藏起来,不被外部直接调用.
    好处:对重要数据获取的逻辑更加严谨,进而保证了数据的安全.
    接口:隐私属性可以通过封装一个接口,在接口内做业务逻辑的处理,再把数据返回给调用者.
    注意:在python中,不会强制限制属性的访问,类内部__开头的属性,只是做了一种变形,若想直接访问,调用变形后的名字即可.

    class Foo:
    	__name = 'aaa' ## _类名__属性名(__name变形后的名字)
    

    property

    什么是property

    python内置的装饰器,主要是给类内部的方法使用.

    为什么要用property

    使用他的目的,是将类的内部的方法def 方法名()变成了def 方法
    在对象调用某个方法时,将对象.方法()变成对象.方法看起来像一个很普通的数据属性.

    如何使用property

    直接@property使用

    多态

    什么是多态

    多态指的是同一个事物的多种形态

    多态的目的

    多态也称之为多态性,在程序中继承就是多态的表现形式.
    多态的目的是为了,让多种不同类型的对象,在使用相同的功能的情况下,调用同一个名字的方法.
    父类:定义一套统一的标准.
    之类:遵循父类统一的标准
    多态最终的目的:统一子类编写的规范,为了让使用者更方便调用相同功能的方法

    如何实现

    -继承
    注意:在python中,不会强制要求子类必须遵循父类的一套标准,所以出现了抽象类.

    抽象类(了解)

    什么是抽象类

    abc模块 abstract_class

    使用的目的

    强制子类必须遵循父类的一套标准

    如何使用抽象类

    import abc

    鸭子类型

    什么是鸭子类型

    在不知道当前对象是何物的情况下,但是你长的像鸭子,那么你就是鸭子类型
    在python中,不推荐使用抽象类强制限制子类的定义,但是推荐类都遵循鸭子类型.
    继承:耦合性太高,程序的可扩展性弱
    鸭子类型:耦合性低,程序的可扩展性强

  • 相关阅读:
    在 macOS High Sierra 10.13 搭建 PHP 开发环境
    给你的网站免费配置上 HTTPS 证书
    将 MacOS 默认的 PHP 版本升级到 7.*
    System.Data.SqlClient.SqlException: 'Incorrect syntax near 'OFFSET'.
    IIS7/8 HTTP Error 500.19 错误 0x80070021 错误代码:0x8007000d
    http error 502.5
    信用卡逾期了怎么办 ?逾期记录“修复”的两大原则
    APP多开教程
    lua调用不同lua文件中的函数
    Lua 用指定字符或字符串分割输入字符串,返回包含分割结果的数组
  • 原文地址:https://www.cnblogs.com/793564949liu/p/11657233.html
Copyright © 2011-2022 走看看