Python中如何检查两个对象是否为同一类类型(不使用isinstance)
判断两个对象是否引用同一个类对象
要判断两个对象的类型是否完全一致(即它们引用同一个类对象),可以直接使用Python的type()函数获取对象所属的精确类,再通过is运算符比较:
代码示例
假设你的两个对象分别为obj_a和obj_b:
# 假设这是你的两个对象 obj_a = <test.object1 object at 0x103baasdfa0> obj_b = <test.object1 object at 0x103baasdfa1> # 检查是否引用同一个类对象 if type(obj_a) is type(obj_b): print("两个对象引用同一个类对象") else: print("两个对象的类对象不同")
关键说明
type()会返回对象所属的精确类,不会像isinstance()那样考虑继承关系(比如子类实例不会被isinstance误判为父类实例,但type()只会返回子类本身)。- 使用
is运算符比==更严谨,因为is直接检查两个类对象是否是内存中的同一个引用,完全匹配你“是否引用同一个类对象”的需求;而==可能会被类的自定义__eq__方法影响,不过对于大多数类来说两者结果一致。
如果需要直接对比某个特定类,比如和test.object1类本身比较:
if type(obj_a) is test.object1: print("obj_a 引用的类对象就是 test.object1")
内容的提问来源于stack exchange,提问作者Oklol2958
相关产品推荐
相关产品推荐

