Python 判断数据类型有type和isinstance
基本区别在于:
type():不会认为子类是父类
isinstance():会认为子类是父类类型
|
1
2
3
4
5
6
7
8
9
|
class Color(object): passclass Red(Color): passprint type(Color()) == Colorprint type(Red()) == Colorprint isinstance(Red(),Color) |
执行结果如下:
|
1
2
3
4
|
D:\software\Python2.7.13\python.exe
C:/Users/Administrator/PycharmProjects/PythonStudy/test.pyTrueFalseTrue |
用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中使用type()和isinstance()进行类型检查的区别,并通过示例代码展示了它们的行为差异。此外,还提供了针对MongoDB中常见数据类型的isinstance()判断方法。
643

被折叠的 条评论
为什么被折叠?



