面向对象——面向对象进阶
Posted linagcheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象——面向对象进阶相关的知识,希望对你有一定的参考价值。
一、isinstance与issubclass方法
1、isinstance是用来判断对象是否是某个类
isinstance(obj,class)
2、issubclass是用来判断一个类是否为另一个类的子类
issubclass(Bar,Foo)
1 class Foo: 2 pass 3 4 5 class Bar(Foo): 6 pass 7 8 9 obj = Foo() 10 print(isinstance(obj, Foo)) # True 11 12 print(issubclass(Bar, Foo)) # True
二、反射
1、什么是反射
通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射)
2、四个反射函数
name必须用字符串表示
hasattr(object,name) # 判断object中有没有一个name字符串对应的方法或属性 setattr(object,name, value) # 设置object对象的name属性的值问value getattr(object,name,None) # 获取object对象的name属性的值,若没有那么属性,则返回None delattr(object,name) # 删除object对象的name属性
1 class Foo: 2 pass 3 4 5 obj = Foo() 6 setattr(obj, ‘name‘, ‘tom‘) 7 setattr(obj, ‘age‘, 19) 8 print(obj.__dict__) # {‘name‘: ‘tom‘, ‘age‘: 19} 9 10 print(hasattr(obj, ‘name‘)) # True 11 12 print(getattr(obj, ‘name‘)) # tom 13 print(getattr(obj, ‘name1‘, None)) #None 14 15 delattr(obj,‘name‘) 16 print(obj.__dict__) # {‘age‘: 19}
三、内置方法
http://www.cnblogs.com/linhaifeng/articles/6204014.html#_label3
以上是关于面向对象——面向对象进阶的主要内容,如果未能解决你的问题,请参考以下文章