比较泛型类型对象的类型

时间:2016-01-26 15:17:30

标签: python python-3.x generics compare

Pythons documentation say

  

例如,以下两个语句创建相同的类型对象:

>>> class X:
...     a = 1
...
>>> X = type('X', (object,), dict(a=1))

我使用以下code测试了该声明:

class X:
    a = 1

foo = X()   

X = type('X', (object,), dict(a=1))
Y = type('X', (object,), dict(a=1))

bar = X()
bar2 = X()
foobar = Y()

print( type(foo) is type(bar) ) # False

print( type(bar) is type(bar2) ) # True

print( type(bar) is type(foobar) ) # False

如您所见,这些类的对象不相等。是否有任何其他可能的比较来评估这些相同的类到True?

1 个答案:

答案 0 :(得分:1)

不,因为课程不一样。它们是单独的类,行为相同(目前!)。

如果向其中一个类添加方法或属性,它应该返回False吗?事实是,类是位于单独内存位置的单独对象,这就是is返回False的原因。