摘要:
'''在类内部定义的函数,分为两大类: 一:绑定方法:绑定给谁,就应该由谁来调用,谁来调用就会把调用者当作第一个参数自动传入 1. 绑定到对象的方法:在类内定义的没有被任何装饰器修饰的 2. 绑定到类的方法:在类内定义的被装饰器@classmethod修饰的方法 二:非绑定方法:没有自动传值这么一说 阅读全文
摘要:
在类的方法上加上一行@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 抽象类里定义了一个属性,这个抽象类其实跟类是一样的。对象属性的查找方法跟类一样。先从对象本 阅读全文