是否有可能在python中检查对象是否为类对象。也就是说,如果你有检查类对象
class Foo(object):
pass
你怎么能检查是否o是美孚(或其他类)或富的一个实例(或任何其它类的实例)?在Java中这将是一件简单的事情。只要检查对象是否是Class的一个实例。 Python中是否有类似的东西,或者你应该不关心?
稍微澄清:我试图做一个函数,打印有关参数给定的信息。所以如果你传入o,那么o = Foo()会打印出关于Foo的信息。如果您传入Foo,则应打印出完全相同的信息。不是关于Type的信息。
有时,您应该尽量不关心确切的类型,而是该对象支持您需要的接口。请参阅“鸭子打字”。如果我用一个完全像'Foo'的东西来调用你的函数,为什么拒绝我的调用?然而,有时候,你确实需要知道一个对象是否是实例,并且看到答案。 – Thanatos
“我试图看看它是一个实例还是一个类,不仅仅是它是一个特定类的实例。”一切都是一个实例,包括类。 'type'的类实例,即'instance(Foo,type)== True'。你可以用这种方式挑选它们,但这通常不是必需的。 – Thanatos
你不应该在意。人们不应该将方钉插入圆孔中。如果他们尝试,将会出现一个非常明显的异常,并且作为程序员,您应该记录以防止其他人首先尝试它。 – TehTris