zoukankan      html  css  js  c++  java
  • python基础之Day23

    1.封装

    什么是?

    封:明确地把属性隐藏起来 ,对外隐藏,对内开放

    申请名称空间,往里面装入一系列名字 /属性(类比 类 和对象   只是装的概念)

    为什么要用?

    __init__往对象里丢属性

    封装数据属性:

    定义属性的目的是给类的外部使用者用的

    隐藏属性目的是为了不让用户直接使用,如果想用的话,需要类内部开辟一个接口,实现间接访问

    精髓在于我们可以在接口上附加任意逻辑,从而严格控制使用者对属性的操作

    封装函数属性:

    定义属性的目的是给类的外部使用者用的

    隐藏属性目的是为了不让用户直接使用,如果想用的话,需要类内部开辟一个接口,实现间接访问

    精髓在于隔离复杂度

    如何?

    在要隐藏的属性之前加__开头

    隐藏在类的内部是可见的,对外不对内

    隐藏只是语法上的变形,只在类定义阶段发生一次,类体内代码只在定义阶段发生一次

    2.特性

    3.绑定方法

    绑定给谁,就应该由谁来调用,把谁当作第一个参数传入

    精髓在于自动传值

    绑定方法分类:1.绑定给对象  类内部定义的函数 没有被任何装饰器修饰的 默认绑定给对象

                              2.绑定给类    类内部定义的函数被@classmethod 装饰 将类当作第一个参数传入

    绑定给类的对象也可以用,但自动传入的仍是类

    类绑定给对象:如果函数体代码需要用到外部传入的类,则应该将该函数定义成绑定给类的方法

    4.非绑定方法

    既不与类也不与对象绑定,无自动绑定的效果,就是普通的函数,类与对象都可以调用,但是无论谁调用都没有自动传值的效果

    @staticmethod

  • 相关阅读:
    Search Insert Position
    lintcode: 最长连续序列
    lintcode:颜色分类
    lintcode: 堆化
    lintcode: 旋转图像
    lintcode: 寻找旋转排序数组中的最小值
    lintcode: 跳跃游戏 II
    lintcode:最小差
    华为:数独填充
    华为:字符集合
  • 原文地址:https://www.cnblogs.com/chicokiko/p/9238960.html
Copyright © 2011-2022 走看看