面向对象
2018-07-04 20:08:50 7 举报
AI智能生成
面向对象初学总结,供大家学习交流,
作者其他创作
大纲/内容
类的结构
第一部分:静态字段(静态变量)
私有静态字段:__变量名
公有静态字段
第二部分:动态方法
普通方法(self),用对象去调用
私有方法(私有字段)
类方法@classmethod,类名去调用方法,类空间传给cls
静态方法@staticmethod,不用传入类空间和对象空间的方法
属性@property,将方法伪装成属性,为了更合理
特殊方法
__init__,只要实例化都会执行此方法,给对象封装属性
__new__,产生并返回对象的函数,在object类中的__new__中产生并返回
__call__,实例化的对象加()就能出发__call__
__item__
__getitem__
对象["name"],就会出发__getitem__方法并将,name传入此方法中
__setitem__
同getitem
__delitem__
del 对象.名字
__str__, __len__, __hash__, __repr__ 了解
对象
对象的形成以及执行流程:类名()执行object中的__new__方法,产生并返回一个对象空间,之后执行__init__方法,给这个对象封装属性
对象查询对象的属性,obj.属性名
对象查找类中的静态变量,obj.变量名
对象调用类的方法,obj.函数名
空间以及查找顺序
对象查找属性,先从对象空间查找,找不到在去对象的所属类中查找
类的查找顺序,先去本类中查找,如果找不到,再去父类中查找
类对象的定义
类:具有相同属性和方法的一类事物
对象:类的具体表现
类名
查询类中的所有内容,类名.__dict__
查看类中的共有静态字段,类名.字段名称
执行类中的方法,类名.方法名(self),不常用
面向对象的三大特性
继承
单继承
只执行父类(子类和对象必须没有此变量或者方法)
在子类中及执行本类又执行父类的方法
父类名.方法名(self,父类此方法所需要方法)
super().__方法名()
多继承
经典类:深度优先,一条路走到黑
新式类:广度优先
封装
给对象封装属性
给一个类封装静态变量及方法
私有成员:私有静态字段,私有方法,私有属性:__变量
私有成员:类只要加载到内存,他会将所有的私有成员变成._类名__变量名
何处调用:只能在类的内部调用,不能再派生类或者类外部调用
组合
给一个对象封装一个属性,这个属性是另一个类的对象
多态(鸭子类型)
0 条评论
下一页