python - 是 Python 中的关键字

标签 python python-2.7

<分区>

当我阅读“学习 Python”时,我对使用 is 运算符感到困惑。

书中试图将其解释为对同一内存地址的测试(A is B,如果True,则表示A和B在同一内存地址)但在下面的案例中,这种解释似乎不成立。谁能帮我理解这个功能?

  s2='ufysdjkhflakjhsdjkfhasdhfoqwhefuhalskdjfhwuioehfjkasdhfljahsdjwade'
  s1='ufysdjkhflakjhsdjkfhasdhfoqwhefuhalskdjfhwuioehfjkasdhfljahsdjwade'
  s1==s2,s1 is s2
  (True, True)

  s1='flashmanfdsafsdfasdfsdffgj;djg;alkjdfgl;kajdfl;gjkla;dfjg;lakdfj;'
  s2='flashmanfdsafsdfasdfsdffgj;djg;alkjdfgl;kajdfl;gjkla;dfjg;lakdfj;'
  s1==s2,s1 is s2
  (True, False)

  s2='ufysdjkhflakjhsdjkfhasdhfoqwhefuhalskdjfhwuioehfjkasdhfljahsdjwade'
  s1='ufysdjkhflakjhsdjkfhasdhfoqwhefuhalskdjfhwuioehfjkasdhfljahsdjwade'
  s1==s2,s1 is s2
  (True, True)

  s1=';;'
  s2=';;'
  s1==s2,s1 is s2
  (True, False)

PS:字符串在内存中以何种格式存在?

最佳答案

这是 CPython(标准 Python 解释器)的一个实现细节,它将在内存中为某些不可变类型(例如字符串和整数)重用相同的数据。您不能依赖此类行为,因此您应该始终使用 == 来比较此类类型。

要获得更深入的答案,请参阅 https://stackoverflow.com/a/15541556/1544347

关于python - 是 Python 中的关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17566271/

相关文章:

python 3 : How to specify stdin encoding

python - 如何在python脚本中从youtube-dl中提取文件大小?

python - 为什么给定数据类型 "range"的变量在使用 "list"函数时仍然显示为 "type"?

未找到 Python 方法,但已在类中定义

python - 函数定义周围的 try- except 会忽略异常处理

python - 分配与全局变量同名的局部变量时出错

Python flask WTForms : How can I disable a field dynamically in a view?

python - 如何在 Pygame 中移动 Sprite

python - 在目录中创建一个文件夹并将文件保存在新文件夹中

python - 重新安装 python 并使 import numpy 工作