python - python中 "is"和 "isinstance"的区别

标签 python

对于以下代码,str是 unicode 类型的变量,但是

str is unicode            # returns false
isinstance(str, unicode)  # returns true

为什么is返回假吗?

最佳答案

is运算符用于检查两个对象是否相同,而 isinstance用于检查第二个参数是否出现在第一个参数的继承链中的任何位置。

所以,当你做这样的事情时

print(u"s" is unicode)

你实际上是在检查 u"s"unicode ,但是当你这样做的时候
print(isinstance(u"s", unicode))

您正在检查是否 u"s"类型为 unicode而后者实际上是 True .

关于python - python中 "is"和 "isinstance"的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26193525/

相关文章:

python - heroku 上的 Flask 项目返回 500 内部服务器错误

python - Django 动态获取 View url 并检查其是否为当前页面

Python:操作字符串中字符中的位

python - 为什么 ctypes 将 Python 列表转换为 C 数组的速度如此之慢?

python - 在 python 中使用 file.seek() 时通常将多少字节加载到内存中?

python - 检测图像中的特定角点 - OpenCV - Python

python - fastai - 绘图验证和训练准确性

python 循环使用 JSON,而不是手动打印出每个匹配项

python - 如何使用正则表达式找到最短的重叠匹配?

python - 为什么 python2 显示\r(原始转义)而 python3 不显示?