python的字符串常量池、字面量是仿java的
1207 2022-02-26 11:09
因为对象不可变,所以为了提高效率,Python 会使用一些公用的对象:
a = 1
print('a', id(a))
b = 1
print('b', id(b))
print(a == b)
print(a is b)
c = 'hello world'
print('c', id(c))
d = 'hello world'
print('d', id(d))
print(c == d)
print(c is d)
输出:
a 4423761776
b 4423761776
True
True
c 4430180912
d 4430180912
True
True
这里顺便提一下 is
这个操作符。它和 ==
的区别在于:==
只判断“值”是不是相等,而 is
则判断是否为同一个对象,也就是地址一致。比如:
a = 2
b = 2.0
print(a == b)
print(a is b)
输出:
True
False
全部评论