python isinstance

isinstance(object,type)常用来判断一个对象是否是一个已知的类型。 
其第参数object为对象,第二个参数type为类型名如int、str,或类型名的一个列表如[int,str,tuple,list,float]。
其返回值为布尔型(True 或 Flase)。若对象的类型与参数二的类型相同则返回True。若参数type为一个元组,参数object类型与元组中类型名之一相同也返回True。

>>> help(isinstance)
Help on built-in function isinstance in module __builtin__:

isinstance(...)
    isinstance(object, class-or-type-or-tuple) -> bool
    
    Return whether an object is an instance of a class or of a subclass thereof.
    With a type as second argument, return whether that is the object's type.
    The form using a tuple, isinstance(x, (A, B, ...)), is a shortcut for
    isinstance(x, A) or isinstance(x, B) or ... (etc.).

>>>

1、参数object为常用类型:

>>> a = 2
>>> isinstance(a,int)
True
>>> isinstance(a,float)
False
>>> type(a)
<type 'int'>
>>> s = 'abc'
>>> type(s)
<type 'str'>
>>> isinstance(s,str)
True
>>> isinstance(2.5,float)
True
2、参数object为列表、元祖、字典:

>>> lst = [1,2,'3',4]
>>> type(lst)
<type 'list'>
>>> isinstance(lst,list)
True
>>> tpl = (5,6,7)
>>> type(tpl)
<type 'tuple'>
>>> isinstance(tpl,tuple)
True
>>> dic = {a:8,b:9,c:10}

Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    dic = {a:8,b:9,c:10}
NameError: name 'a' is not defined
>>> dic = {'a':8,'b':9,'c':10}
>>> isinstance(dic,dict)
True
>>> 
3、参数object为类:(建议使用isinstance判断对象,少用type。)

>>> class BaseClass:
	pass

>>> class SubClass:
	pass

>>> isinstance(BaseClass(),BaseClass)
True
>>> type(BaseClass())
<type 'instance'>
>>> type(BaseClass()) == BaseClass
False
>>> c = SubClass()
>>> isinstance(c,SubClass)
True
>>> 
4、参数type为元祖:

>>> 
>>> isinstance(c,(int,str,list))
False
>>> isinstance(c,(int,str,list,SubClass))
True
>>> t = (int,str,list,SubClass)
>>> isinstance(c,t)
True
>>> 



  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值