例如,以下两个语句创建相同的类型对象:
>>> 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?
答案 0 :(得分:1)
不,因为课程不一样。它们是单独的类,行为相同(目前!)。
如果向其中一个类添加方法或属性,它应该返回False吗?事实是,类是位于单独内存位置的单独对象,这就是is
返回False的原因。