Python中数据类型的判断
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中数据类型的判断相关的知识,希望对你有一定的参考价值。
参考技术APython在定义变量的时候不用指明具体的的类型,解释器会在运行的时候会自动检查 变量的类型,并根据需要进行隐式的类型转化。因为Python是动态语言,所以一般情 况下是不推荐进行类型转化的。比如"+"操作时,如果加号两边是数据就进行加法操 作,如果两边是字符串就进行字符串连接操作,如果两边是列表就进行合并操作,甚 至可以进行复数的运算。解释器会在运行时根据两边的变量的类型调用不同的内部方法。 当加号两边的变量类型不一样的时候,又不能进行类型转化,就会抛出TypeError的异常。
通常类型判断可用两种方法来进行判断:
这两种方法有什么区别,用哪种比较好呢?
对于内建的基本类型来说,使用tpye来检查是没有问题的, 可是当应用到其他场合的时候,type就显得不可靠了。比如:当我们对Python内建类型进行扩展的时候,type返回的结果就不够准确了。
这个时候我们就需要使用isinstance来进行类型 检查。
object表示实例,classinfo可以是直接或间接类名、基本类型或者有它们组成的元组。
(转)python 判断数据类型
原文:https://blog.csdn.net/mydriverc2/article/details/78687269
Python 判断数据类型有type和isinstance
基本区别在于:
type():不会认为子类是父类
isinstance():会认为子类是父类类型
1
2
3
4
5
6
7
8
9
|
class Color( object ): pass class Red(Color): pass print type (Color()) = = Color print type (Red()) = = Color print isinstance (Red(),Color) |
执行结果如下:
1
2
3
4
|
D:softwarePython2. 7.13 python.exe C: / Users / Administrator / PycharmProjects / PythonStudy / test.py True False True |
用isinstance判断mongDB中的一些数据类型:
- 字符串、int、long、float - isinstance(data, (int, str, types.LongType, float))
- 时间类型 - isinstance(data, datetime.datetime)
- 布尔类型 - isinstance(data, (bool))
- 字典类型 - isinstance(data, (dict))
- 数组 - isinstance(data, (list))
- unicode - isinstance(data, unicode)
- mongo obJect - isinstance(data, bson.objectid.ObjectId)
可以引入types模板,获取数据类型:
inport types
types取值:
BooleanType
BufferType
BuiltinFunctionType
BuiltinMethodType
ClassType
CodeType
ComplexType
DictProxyType
DictType
DictionaryType
EllipsisType
FileType
FloatType
FrameType
FunctionType
GeneratorType
GetSetDescriptorType
InstanceType
IntType
LambdaType
ListType
LongType
MemberDescriptorType
MethodType
ModuleType
NoneType
NotImplementedType
ObjectType
SliceType
StringType
StringTypes
TracebackType
TupleType
TypeType
UnboundMethodType
UnicodeType
XRangeType
以上是关于Python中数据类型的判断的主要内容,如果未能解决你的问题,请参考以下文章