Python类的封装

04/23/2017

  1. 什么是绑定到对象的方法,如何定义,如何调用,给谁用?有什么特性
    绑定对象方法解释
    绑定到对象方法代表同一个类的方法绑定到不同的对象上,绑定方法会将对象作为self当作参数传入,不同对象的方法内存地址都不一样,绑定方法主要作用于实例化出来的对象
    定义绑定对象方法例子
  2. 什么是绑定到类的方法,如何定义,如何调用,给谁用?有什么特性
    绑定到类方法解释

    python @classmethod 的使用场合

    绑定到类的方法很难解释,主要作用在于重构类时在不修改原代码的基础上进一步封装,用@classmethod可以把类作为参数传入到方法内,程序员即可以用传入的类参数在类内部实例化对象,语言解释起来很困难,这里我引用30daydo上的例子
    常规
    建立date对象,实例化时传入日、月、年


    应对用户输入不同的日期字符串
    假如用户输入了2017-1-2这样的字符串,那显然应该对该字符串进行处理,如下:

    将方法绑定到类,通过类方法来实例化对象
    我们可以通过@classmethod将方法写入类里面,通过绑定到类的方法来实例化对象
  3. 什么是解除绑定的函数,如何定义,如何调用,给谁用?有什么特性
    静态函数解释
    解除绑定的函数实为静态及方法,特点是处于类的命名空间中,但不与对象进行绑定,执行方法不需要实例化对象也可以执行,实例化的对象去执行也不影响,不需要传入self参数即可执行
    简写例子, 说明两者关系
  4. 什么是property,如何定义,如何使用,给谁用,什么情况下应该将一个属性定义成property,有什么好处?
    property解释
    property可以将对象的方法定义成属性,@property装饰器将方法作为属性使用,使用property的好处就是对访问的规则进行统一,将逻辑代码隐藏起来,对类的进一步封装
    使用例子
    建立一个person类,实例化对象传入姓名,性别,性取向,通过性别和性取向能够判断这个人是不是gay or les,用property将status方法封装函数,这样实例化对象后就能得到status值