【发布时间】:2013-01-11 01:06:13
【问题描述】:
有什么方法可以检查对象是否是类的实例?不是具体类的实例,而是任何类的实例。
我可以检查一个对象不是类、不是模块、不是回溯等,但我对一个简单的解决方案感兴趣。
【问题讨论】:
-
每个 python 对象都是某个类的实例(内置或其他)。
-
所以解决方法是函数 def isobject(x): return True
-
如果我写
from my_module import MyClass将是类对象,而不是类的实例,类似于回溯、函数、模块。inspect模块包含针对此类对象的特殊检查功能,但没有针对类实例的功能。粗略地说,我想检测所有对象,print obj将为其打印<instance of ...>(如果没有为类定义特殊打印) -
一个类只是另一个类的一个实例(当区分很重要时称为元类;通常是
type,但任何人都可以定义一个元类,IIRC,即使没有从type继承)。回溯只是traceback的一个实例。函数只是function的一个实例。方法也只是类的一个实例(这取决于您所说的方法的确切含义)。您必须更具体——甚至更好,只需tell us your actual problem。