如何确定变量是否是Python 3中的实例?如果它有__dict__
属性,我认为它是一个实例。
例:
is_instance_of_any_class(5) # should return False
is_instance_of_any_class([2, 3]) # should return False
class A:
pass
a = A()
is_instance_of_any_class(a) # should return True
我已经看过有关使用isinstance(x, type)
或inspect.isclass(x)
的消息,但这会给类(A)赋予True,而不是实例。
我认为你理解一个实例在这里是错误的,因为一切都是python中的一个对象,所以5
是类int
的对象,而[2,3]
是类list
的对象,依此类推。
如果你想检查isinstance(x, y)
是否是x
的对象,y
是要走的路,但如果你想检查x
是否是内置类的对象或你自己的自定义类,那么你应该检查__dict__
的存在使用hasattr(x, '__dict__')
。