确定变量是否是任何 class 的实例

Determine if a variable is an instance of any class

如何判断一个变量是否是Python3中的一个实例?如果它具有 __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) 的消息,但这将为 class (A) 提供 True,而不是实例。

我认为您对实例的理解在这里是错误的,因为在 python 中一切都是对象,所以 5 是 class int 的对象并且[2,3] 是 class list 等的对象。

isinstance(x, y) 是如果你只想检查 x 是否是 y 的对象的方法,但如果你想检查 x 是否是内置对象 class 或您自己自定义的对象 class 那么您应该使用 hasattr(x, '__dict__').

检查 __dict__ 是否存在