用type()这种判断变量的方法,结果被鄙视了,不知所以然。>>> n = 911>>> type(n)
<type 'int'>>>> type(n) is intTrue
2 回答
天涯尽头无女友
TA贡献1831条经验 获得超9个赞
实际上还有一种方法是用isinstance
比如:
a = 111isinstance(a, int)True
isinstance 和 type的区别在于:
class A: passclass B(A): passisinstance(A(), A) # returns Truetype(A()) == A # returns Trueisinstance(B(), A) # returns Truetype(B()) == A # returns False
区别就是 对于subclass之类的 type就不行事了
开心每一天1111
TA贡献1836条经验 获得超13个赞
1、type可以只接收一个参数,打印其未知的所属的类型;而isinstance只能判断是否属于某个已知类型,所以,isinstance效率更高一些
2、isinstance可以判断子类对象是否继承于父类;而type不可以,type只能把类对象识别为instance实例类型,即老式类都是通过instance创建的
所以,type主要用于获取未知变量的类型,isinstance主要用于判断A类是否继承于B类
添加回答
举报
0/150
提交
取消