确定Python变量是否为内置类型的实例

42
我需要确定一个给定的Python变量是否是本地类型的实例:strintfloatboollistdict等等。有没有更优雅的方法来完成它?
或者这是唯一的方法:
if myvar in (str, int, float, bool):
    # do something

6
“native” type是什么意思?你的意思是内置类型吗?你为什么需要知道这个?Python不同于C++或Java,所以没有“简单”或“本地”类型的区别。你想要做什么? - S.Lott
是的,我想我的意思是“内置”类型。我需要这样一种对象的表示形式,以便我可以在JSON序列化中使用它。simplejson仅“处理”此类类型。在其他情况下(当对象是“自制”类的实例时),我需要创建字典对象。 - Aleksandr Motsjonov
1
你知道simplejson有一个叫做"对象解码"和"对象编码"的功能吗? - lutz
是的,但据我所理解,我应该为我想要序列化的每种类别编写这样的解码器。我不想这么做。 - Aleksandr Motsjonov
你应该真正看看S.Lott的答案,因为它比你选择的更好...我添加了一些代码来展示它实际上是如何使用的,但你真的不应该关心某个东西是否是内置的,而是应该看看你正在尝试做的事情是否被支持,否则就尝试其他方法。 - Terence Honles
显示剩余3条评论
11个回答

-1

内置类型函数可能会有所帮助:

>>> a = 5
>>> type(a)
<type 'int'>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接