python判断数据类型有几种方法,有啥优缺点
发布网友
发布时间:2022-03-03 13:03
我来回答
共2个回答
热心网友
时间:2022-03-03 14:32
123456789
class A: passclass B(A): passa=A()b=B() print('a is an A:%s;b is an A:%s'%(isinstance(a,A),isinstance(b,A)))print('type of a is %s;type of b is %s'%(type(a),type(b)))
通常我们判断是什么类型,那么只是想直到这个对象是否含有我们所需要的方法或者属性,这样在调用的时候就不会出错,否则就要进行异常捕捉。而isinstance这个方法非常满足这个需求。以上是示例代码。
可以看出isinstance(a,A),isinstance(b,A)两个返回的都是True,如果我们把a,b都当做A的实例使用完全没问题,但是我们并不关心b是A的实例还是B的实例,因为他肯定包含A类定义中的所有属性和方法,正常调用不会出现异常。
type的话出来的则是一串字符串,精确到子类,所以可以用来做精确判断,例如判断是不是这个类,而不是这个类的子类,isinstance只能判断是不是这个类或者这个类的子类。
判断两个对象是否来自同一个类,可以用type(a)==type(b)来判断。
热心网友
时间:2022-03-03 15:50
检查o是否是str类型:
type(o) is str
方法2:
isinstance(o, str)
The following also works, and can be useful in some cases:
issubclass(type(o), str)
type(o) in ([str] + str.__subclasses__())