7-2 ==和is的区别

2018-08-26  本文已影响0人  正在努力ing
a = [1,2,3,4,5]
b = [1,2,3,4,5]

print(a == b)
print(id(a),id(b))
print(a is b)
True
80019848 80019272
False

观察a和b 的内存地址值 80019848 ; 80019272
虽然a和b的数值是相同的,但是这两个数据开辟的内存地址是不一样的,所以这两个数据不是同一个数据

但是有例外:

在Python中有一个intern 机制,把一定小的范围的数设为全局唯一

class Person:
    pass

person = Person()

if type(person) is Person:
    print("yes")
yes

此时Person类全局唯一

上一篇下一篇

猜你喜欢

热点阅读