【发布时间】:2013-01-14 19:00:19
【问题描述】:
代码:
import types
class C(object):
pass
c = C()
print(isinstance(c, types.InstanceType))
输出:
False
检查对象是否是新样式类的用户定义类的实例的正确方法是什么?
更新:
我想进一步强调检查对象类型是否为用户定义。根据文档:
types.InstanceType
用户定义的类的实例类型。
UPD2:
好吧 - 不“正确”的方式也可以。
UPD3:
还注意到模块types中没有set的类型
【问题讨论】:
-
这是一个奇怪的需求,它有什么用?
-
我正在尝试编写一个简单的函数来测量作为参数提供的对象占用了多少内存
-
嗯,我还是不明白。为什么需要知道它是否是用户定义的类?在 yes 情况下与 no 情况不同,你会怎么做?
-
@NedBatchelder 可能是
__slots__问题或类似问题。
标签: python python-2.x new-style-class