摘要:
在类的方法上加上一行@property 装饰器,会使得用户调用该函数属性时,就像调用数据属性一样,不需要加上() 比如想获取一些名词,再加上括号,容易使调用者忘记。动词才加()调用方法. 如下示例: '''BMI指数(bmi是计算而来的,但很明显它听起来像是一个属性而非方法,如果我们将其做成一个属性 阅读全文
摘要:
一:封装数据属性:明确的区分内外,控制外部对隐藏的属性的操作行为 如: 如果直接对name进行操作,控制不了输入的合法性。可对其进行隐藏,然后开放接口,在接口内部进行校验。 二、 封装方法:隔离复杂度 阅读全文
摘要:
1. 封装其实就是在类定义的时候,对以__开头(不包括__xxx__是内置方法)的属性进行变形,并且只变形一次,只是类定义时。 2. 变形后,类外部无法直接使用obj_name.__attribute_name。但python无法做到真正的隐藏,外部依然可以使用变形后的属性进行调用。如:对象._类名 阅读全文
摘要:
#多态:同一类事物的多种形态import abcclass Animal(metaclass=abc.ABCMeta): #同一类事物:动物 @abc.abstractmethod def talk(self): pass class People(Animal): #动物的形态之一:人 def t 阅读全文
摘要:
抽象类的作用: 规范化子类,降低使用者的难度。 抽象类是父类,该类不实现自己的方法,子类必须实现抽象类所有的方法。 抽象类只能被继承,不能被实例化。 python自己没有接口,必须使用第三方插件,抽象类abc 抽象类里定义了一个属性,这个抽象类其实跟类是一样的。对象属性的查找方法跟类一样。先从对象本 阅读全文