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)
執行結果如下:
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