python 判断数据类型

本文介绍了Python中使用type()和isinstance()进行类型检查的区别,并通过示例代码展示了它们的行为差异。此外,还提供了针对MongoDB中常见数据类型的isinstance()判断方法。

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:\software\Python2.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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值