Python中isinstance()的用法?
isinstance()函数来判断一个对象是否是一个已知的类型,类似type()。
语法
isinstance(object,classinfo)
参数
object-实例对象
classinfo-可以是直接或者间接类名,基本类型或者由它们组成的元组
返回值
如果对象的类型与参数二的类型相同则返回True,否则返回False。
python 3 isinstance函数的用法,下面的代码如何解释?
isinstance 的用法:
语法:
isinstance(object, classinfo)
其中,object 是变量,classinfo 是类型即 (tuple,dict,int,float,list,bool等) 和 class类
若参数 object 是 classinfo 类的实例,或者 object 是 classinfo 类的子类的一个实例, 返回 True。
若 object 不是一个给定类型的的对象, 则返回结果总是False。
若 classinfo 不是一种数据类型或者由数据类型构成的元组,将引发一个 TypeError 异常。
例如:
isinstance(3, int)
True
isinstance(3.5, float)
True
isinstance(123,str)
False
isinstance('adf',(str,float,int))
True
class myClass:
pass
test = myClass()
isinstance(test, myClass)
True12345678910111213141516171234567891011121314151617
type()与isinstance()的区别:
共同点:两者都可以判断对象类型
不同点:对于一个 class 类的子类对象类型判断,type就不行了,而 isinstance 可以。
例如:
class A:
pass
class B(A):
pass
isinstance(A(), A) # returns True
type(A()) == A # returns True
isinstance(B(), A) # returns True
type(B()) == A # returns False1234567891012345678910
综上,推荐使用 isinstance 判断对象类型。
isinstance、type区别
type() 与 isinstance()区别:
class A:
pass
class B(A):
pass
print(isinstance(A(), A))
print(type(A()) == A)
print(isinstance(B(), A))
print(type(B()) == A)
:
True
True
True
False
print(type(A())) :class ' main .A'
print(type(A)) : class 'type' 没毛病,类A是由元类创建的,只是继承object
print(type(B)) : class 'type'
a = 123
print(type(a)) : class 'int' int 是一个内建的类
a = "123"
print(type(a)) :class 'str'
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。
class A:
pass
class B(A):
pass
class C(A):
pass
print(issubclass(B,A)) # 返回 True
print(issubclass(C, B)) # 返回False
Python—assert、isinstance的用法
Python—assert、isinstance的用法
1 assert
assert 语句是一种插入调试断点到程序的一种便捷的方式。
2 isinstance
当我们定义一个class的时候,我们实际上定义了一种数据类型。
判断一个变量是否某个类型可以用isinstance()判断:
class Students():
def init (self,name,score):
self.name = name
self.score = score
a = '10'
b = 3
c = [1,2,3]
d = (1,2,3)
f = Student('Eden',99.9)
print(isinstance(a, str)) # True a属于字符串
print(isinstance(b, int)) # True b属于整形
print(isinstance(c, list)) # True c属于整形
print(isinstance(d, tuple)) # True d属于元组
print(isinstance(f, Student)) # True f属于类
3 assert isinstance
a = 2
assert isinstance(a,int) # 插入断言,判断a是否为int类型
isinstance的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、isinstance的信息别忘了在本站进行查找喔。