简单记录一下python对象相关的知识
一、类与对象
1、类
简单理解,类是对象的定义方法
python中类用class定义,格式如下
class 类名:
类的内容
2、对象
对象可以理解为属性加方法,对象的特征就是属性,对象的行为就是方法
实例对象 类的实例化,python中实例化格式如下
实例对象名 = 类名()
调用方法时 实例对象名.方法名()
3、self
c++的this,指代对象自身
4、公有与私有
所有成员默认为公有成员,私有成员定义时名字前面加__(双下滑线)
可以认为python没有真正的私有公有区分,私有是伪私有
通过 实例._类名__私有成员名,可以访问私有成员
5、组合
一个类包含其它类的实例化,可称为类的组合
二、属性与方法
1、属性
对象的特征,表现形式一般为各种量
2、方法
对象的行为,表现形式一般为各种函数
3、属性与方法的冲突
属性与方法同名,则属性覆盖方法
4、魔法方法
举例:构造方法__init__()
魔法方法有很多,有机会再具体整理
5、绑定
方法有实例才能调用,称为绑定
三、继承
1、继承
形式:
class 子类名(父类名):
类成员
super():自动找到父类的方法,方便访问父类成员
2、多继承
形式:
class 子类名(父类1名,父类2名,..., 父类3名):
类成员
多继承易引发混乱,尽量避免使用
四、内置函数(BIF)
简单记录几种常见的内置函数
1、查询父子关系 issubclass(class, classinfo)
如果第一个参数(class)是第二个参数(classinfo)的一个子类,则返回True,否则返回False。
有以下几点要注意
(1)一个类被认为是其自身的子类。
(2)classinfo可以是类对象组成的元组,只要class是其中任何一个候选类的子类,则返回True。
(3)在其他情况下,会抛出一个TypeError异常。isinstance
2、查询实例关系 isinstance(object, classinfo)
如果第一个参数(object)是第二个参数(classinfo)的实例对象,则返回True,否则返回False。
有以下几点要注意
(1)如果object是classinfo的子类的一个实例,也符合条件。
(2)如果第一个参数不是对象,则永远返回False。
(3)classinfo可以是类对象组成的元组,只要object是其中任何一个候选类的子类,则返回True。
(4)如果第二个参数不是类或者由类对象组成的元组,会抛出一个TypeError异常。
3、查询属性存在 hasattr(object, name)
attr即attribute的缩写,属性的意思。测试一个对象里是否有指定的属性。
第一个参数(object)是对象,第二个参数(name)是属性名(属性的字符串名字)。
4、获取指定属性 getattr(object, name[, default])
返回对象指定的属性值,如果指定的属性不存在,则返回default(可选参数)的值;若没有设置default参数,则抛出ArttributeError异常。
5、设置指定属性 setattr(object, name, value)
设置对象中指定属性的值,如果指定的属性不存在,则会新建属性并赋值。
6、删除指定属性 delattr(object, name)
删除对象中指定的属性,如果属性不存在,则抛出AttributeError异常。
标签:object,classinfo,python,子类,知识,对象,简记,实例,属性 From: https://blog.csdn.net/well_fly/article/details/142426867