Python 判断变量的类型

这里有两种方法。type 和isinstance 

 

import types

aaa = 0
print type(aaa)
if type(aaa) is types.IntType:
    print "the type of aaa is int"
if isinstance(aaa,int):
    print "the type of aaa is int"

bbb = 'hello'
print type(bbb)
if type(bbb) is types.StringType:
    print "the type of bbb is string"
if isinstance(bbb,str):
    print "the type of bbb is string"

#if the type is NoneType,the isinstance does not work
#we should judge the NoneType like below
#if row is None
#if type(row) is types.NoneType

#In my opinion,use the types to judge the type of a param is convinient<span style="font-family:Arial;background-color: rgb(255, 255, 255);">, use the isinstance to judge whether a instance is a type of a class or not</span>

一、isinstance()

在Python中可以使用type()与isinstance()这两个函数判断对象类型,而isinstance()函数的使用上比type更加方便。

复制代码代码如下:

 1 # coding=utf-8
 2  
 3 a = 10
 4  
 5 def b():
 6     pass
 7  
 8 print isinstance(a,(int,str))
 9 print isinstance(a,(float,str))
10 print isinstance(b,(str,int))
11  
12 class c:
13     pass
14  
15 obj = c()
16  
17 print isinstance(obj,(c,int))

执行结果:

复制代码代码如下:

1 True
2 False
3 False
4 True

二、isinstance 和 type的区别

isinstance 和 type的区别在于:

复制代码代码如下:
 1 class A:
 2     pass
 3  
 4 
 5 class B(A):
 6     pass
 7 
 8 isinstance(A(), A)  # returns True
 9 type(A()) == A      # returns True
10 isinstance(B(), A)    # returns True
11 type(B()) == A        # returns False

区别就是 对于subclass之类的 type就不行了,所以,强烈建议不要使用type判断对象类型。

转载于:https://www.cnblogs.com/cofludy/p/6000930.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值