python - 比较不同类型时如何强制 Python 2 引发异常?

标签 python python-2.7 python-3.x

在 Python 2.7.2 中将字符串与 int 进行比较看起来非常不一致:

x = '12'; y = 3
print x > y      # True
x = 12; y = '3'
print x > y      # False

根据 How does Python compare string and int? 在 Python 3 中,这些将引发异常。有没有办法让 Python 2 已经这样做了?看着 __future__我不知道是否有这样的功能。

最佳答案

没有。您的选择是:

  • 编写和使用包装类,在不需要的比较时引发。

  • 编写和使用自定义比较函数来代替常用运算符。

  • 使用 MacroPy 之类的东西让您的自定义比较函数不那么难用。

  • 不要依赖这些语义。

  • 比较前预先检查值。

  • 想用 Python 3 就用 Python 3。

关于python - 比较不同类型时如何强制 Python 2 引发异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19331674/

相关文章:

python - 如何通过使用将参数保留在同一列中的第一个和最后一个来删除 pandas df 列中的重复值

python - 使用 Python 通过 SFTP 上传文件

python - 如何计算 numpy 中向量的反叉积?

python - 证书验证失败 : self signed certificate in certificate chain (_ssl. c:1129)

基于 Monte Carlo 的 Pi 计算的 Python 高效矢量化

python - 是否有一个模块可以记录内存中的错误?

python - 如何使这个小小的 Python 2.7 复数代码片段与 Python 3 一样工作?

python - 如何创建委托(delegate)类而不是子类?

python - 根据多个 groupby 条件创建新列

Python方式从文件中导出数字证书信息