对python感到困惑的是运算符

时间:2020-09-25 14:52:31

标签: python operators

就算我对python运算符了解得足够多!

有人可以解释为什么e为假吗?

a = 'Goodbye'
b = 'Goodbye'
c = 'Good_Bye'
d = 'Good_Bye'
e = 'Good-Bye'
f = 'Good-Bye'
a is b
Out[9]: True
c is d
Out[10]: True
e is f
Out[11]: False

1 个答案:

答案 0 :(得分:1)

is检查两个对象的identity

“ is”运算符比较两个对象的身份; id()函数返回一个表示其身份的整数。

对于不可变的(例如str)文字,相等的值可以(偶然地)实际依赖于支撑它们的同一对象,但这不是保证或有意为之->您不应该依赖于此(强调):

类型几乎影响对象行为的所有方面。甚至对象标识的重要性在某种意义上也受到影响:对于不可变类型,可能计算新值的操作实际上会返回对具有相同类型和值的任何现有对象的引用,而对于可变对象,这是不允许。例如,在a = 1之后; b = 1,a和b 可能引用或可能不引用同一对象,其值取决于实现方式