python 判断数据类型及释疑

2020-12-12 20:46

阅读:773

标签:complex   func   net   ext   red   pass   ict   ejs   color   

Python 判断数据类型有type和isinstance

基本区别在于:

type():不会认为子类是父类

isinstance():会认为子类是父类类型

class Color(object):
pass

class Red(Color):
pass

print type(Color()) == Color
print type(Red()) == Color
print isinstance(Red(),Color)
执行结果如下:

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 2 实例:

import types
type(x) is types.IntType # 判断是否int 类型
type(x) is types.StringType #是否string类型

还可以:

import types
type(x) == types(1) # 判断是否int 类型
type(x) == type(‘a‘) #是否string类型

python 3 实例:

if type(fileJson) is dict:
if type(fileJson) == dict:
if type(fileJson) == type({}):

 

python 判断数据类型及释疑

标签:complex   func   net   ext   red   pass   ict   ejs   color   

原文地址:https://www.cnblogs.com/dingjiaoyang/p/10999287.html


评论


亲,登录后才可以留言!