Python中请使用isinstance()判断变量类型
2016-01-01 13:46
776 查看
一、isinstance()
在Python中可以使用type()与isinstance()这两个函数判断对象类型,而isinstance()函数的使用上比type更加方便。
复制代码 代码如下:
# coding=utf-8
a = 10
def b():
pass
print isinstance(a,(int,str))
print isinstance(a,(float,str))
print isinstance(b,(str,int))
class c:
pass
obj = c()
print isinstance(obj,(c,int))
执行结果:
复制代码 代码如下:
True
False
False
True
二、isinstance 和 type的区别
isinstance 和 type的区别在于:
复制代码 代码如下:
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 False
区别就是 对于subclass之类的 type就不行了,所以,强烈建议不要使用type判断对象类型。
在Python中只需要使用内置的函数isinstance,使用起来非常简单,比如下面的例子:
复制代码 代码如下:
class objA:
pass
A = objA()
B = 'a','v'
C = 'a string'
print isinstance(A, objA)
print isinstance(B, tuple)
print isinstance(C, basestring)
输出结果:
True
True
True
在Python中可以使用type()与isinstance()这两个函数判断对象类型,而isinstance()函数的使用上比type更加方便。
复制代码 代码如下:
# coding=utf-8
a = 10
def b():
pass
print isinstance(a,(int,str))
print isinstance(a,(float,str))
print isinstance(b,(str,int))
class c:
pass
obj = c()
print isinstance(obj,(c,int))
执行结果:
复制代码 代码如下:
True
False
False
True
二、isinstance 和 type的区别
isinstance 和 type的区别在于:
复制代码 代码如下:
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 False
区别就是 对于subclass之类的 type就不行了,所以,强烈建议不要使用type判断对象类型。
在Python中只需要使用内置的函数isinstance,使用起来非常简单,比如下面的例子:
复制代码 代码如下:
class objA:
pass
A = objA()
B = 'a','v'
C = 'a string'
print isinstance(A, objA)
print isinstance(B, tuple)
print isinstance(C, basestring)
输出结果:
True
True
True
相关文章推荐
- Python中配置matplotlib模块
- Python2.7安装及环境配置
- Python_openpyxl_styles样式处理
- python中的条件选择语句和循环语句
- python 中列表、元组、字典、文件的区别
- <LeetCode><Medium>15 ThreeNums
- python类:描述器Descriptors和元类MetaClasses
- python描述器和元类
- ghost.py 使用实例
- python上下文管理器ContextLib及with语句
- python上下文管理器ContextLib及with语句
- python字典的常用方法
- python中列表的常用方法
- Python 递归函数选择排序和二分查找
- python批量下载图片的三种方法
- 读书笔记--python数据可视化--001_matplotlib学习
- Python 阶乘的实现和递归的最大深度
- 聚类 K-Means Using Python
- python实现onvif协议-1
- 自学Python之函数