issubclass ,isinstance,反射
issubclass() 函数
issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。
语法
以下是 issubclass() 方法的语法:
issubclass(class, classinfo)
如果 class 是 classinfo 的子类返回 True,否则返回 False。
class A: pass class B(A): pass print(issubclass(B,A)) # 返回 True
Python中的isinstance函数
isinstance是Python中的一个内建函数
语法:
isinstance(object, classinfo)
如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True。如果object不是一个给定类型的的对象, 则返回结果总是False。
如果classinfo不表示一个类(类型对象), 那么它要么是一个类的元组, 或者递归地包含这样的(由数据类型构成的)元组.其他的序列类型是不被允许的。
如果classinfo不是一种数据类型或者由数据类型构成的元组,将引发一个TypeError异常。
举例:
>>> isinstance(1, int)
True
>>> isinstance(1.0, float)
True
>>>isinstance(a,dict) 判断对象a是否为字典,如果为真,会打印True,如为假,打印False。
反射------------------------------------
在Python中反射的表现形式是:
通过字符串的形式操作对象相关的属性
在Python中通过四个函数实现反射:
函数名 | 意义 |
---|---|
hasattr(obj,name) |
判断object中有没有一个name字符串对应的方法或属性 |
getattr(obj,name, default) |
检查obj.__dict__ 中有没有name 这个键值,有则不做任何处理,没有则报错 |
setattr(obj,name,value) |
等价于obj.name=value
|
delattr(obj,name) |
等价于del obj.name |
posted on 2018-08-23 23:09 fushuanglin 阅读(125) 评论(0) 编辑 收藏 举报