摘要:
什么是特性propertyproperty是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值 例一:BMI指数(bmi是计算而来的,但很明显它听起来像是一个属性而非方法,如果我们将其做成一个属性,更便于理解)成人的BMI数值:过轻:低于18.5正常:18.5-23.9过重:24-27肥胖:28-32非常肥胖, 高于32体质指数(BMI)=体重(kg)÷身高^2(m) class Peop... 阅读全文
摘要:
一、封装如何隐藏属性 二、封装的意义 特性(property) 将一个类的函数定义成特性以后,对象再去使用的时候obj.name,根本无法察觉自己的name是执行了一个函数然后计算出来的,这种特性的使用方式遵循了统一访问的原则 @property 封装逻辑,像是在调取一个普通属性,隐藏了内部逻辑,外 阅读全文
摘要:
Python崇尚鸭子类型,即‘如果看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子’ python程序员通常根据这种行为来编写程序。例如,如果想编写现有对象的自定义版本,可以继承该对象 也可以创建一个外观和行为像,但与它无任何关系的全新对象,后者通常用于保存程序组件的松耦合度。 例1:利用标准库中 阅读全文
摘要:
多态是指的多种形态;比如水的多种形态:水,冰多态性:在不考虑实例类型情况下使用实例,多态性分为静态多态性和动态多态性静态多态性:如任何类型都可以用运算符+进行运算 多态:同一类事物的多种形态 import abc class Animal(metaclass=abc.ABCMeta): #同一类事物:动物 @abc.abstractmethod def talk(self): ... 阅读全文
摘要:
抽象类:只能被继承,不能被实例化。作用于继承接口。 import abc # class Animal(metaclass=abc.ABCMeta): # 这个是 抽象类((只能被继承,不能被实例化)) @abc.abstractmethod # def run(self): pass def eat(self): pass cla... 阅读全文
摘要:
组合: 学生有课程:stu.course1=python (stu 与 python都是实例化对象,course1 是变量名,可以变化) 学生有生日:stu.brith=d (stu与d 是实例化的对象,brith是变量名,可以根据意思写其他的) class People: school = 'luffycity' def __init__(self, name, age... 阅读全文
摘要:
在子类派生出的新方法中 重用父类分方法,有2种 1、指名道姓(不依赖继承) 2、super()依赖继承 阅读全文
摘要:
继承的实现原理:1、子类会先于父类2、多个父类,会根据列表中的顺序被检查3、如果对于下一个类存在两个合法的选择,选择第一个父类。继承顺序(mro查找顺序) 1、新式类:广度优先2、经典类:深度优先(一条道走到底) 在Python2中 经典类:没有继承object,以及它的子类都称之为经典类 在Python2中 新式类:继承object,以及它的子类都称之为新式类 在Python3中 新式类:都是新... 阅读全文
摘要:
派生:即子类自己派生出来的属性子类也可以添加自己新的属性或者在自己这里重新定义这些属性(不会影响到父类),需要注意的是,一旦重新定义了自己的属性且与父类重名,那么调用新增的属性时,就以自己为准了。 class Hero: def __init__(self,nickname,life_value,aggresivity): self.nickname=nickname ... 阅读全文
摘要:
继承:子类继承父类,可以分为单继承,与多继承。子类继承父类,可以减少重复代码。 阅读全文