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

问题描述 投票:-2回答:1

如何确定变量是否是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 python-3.x instance isinstance
1个回答
2
投票

我认为你理解一个实例在这里是错误的,因为一切都是python中的一个对象,所以5是类int的对象,而[2,3]是类list的对象,依此类推。

如果你想检查isinstance(x, y)是否是x的对象,y是要走的路,但如果你想检查x是否是内置类的对象或你自己的自定义类,那么你应该检查__dict__的存在使用hasattr(x, '__dict__')

© www.soinside.com 2019 - 2024. All rights reserved.