首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何强制Python 2在比较不同类型时抛出异常?

如何强制Python 2在比较不同类型时抛出异常?
EN

Stack Overflow用户
提问于 2013-10-12 15:26:03
回答 2查看 95关注 0票数 4

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

代码语言:javascript
运行
复制
x = '12'; y = 3
print x > y      # True
x = 12; y = '3'
print x > y      # False

根据Python3中的How does Python compare string and int?,这些将引发异常。有没有办法让Python2已经有这样的行为?看着__future__,我想不出是否有这样的功能。

EN

回答 2

Stack Overflow用户

发布于 2013-10-12 15:30:55

不是的。您的选择是:

  • 编写和使用在不需要的comparisons.
  • Write上引发的包装类,并使用自定义比较函数来代替通常的运算符。

使用类似MacroPy的东西来使您的自定义比较函数不那么令人讨厌。当您需要Python 3时,在Python 3之前

  • 不要依赖这些Python值。
票数 4
EN

Stack Overflow用户

发布于 2013-10-12 15:29:06

您不能对内置类型进行monkeypatch (至少不能不转到C源代码),也不应该这样做。您只能对它们进行子类化,并让它们在非法比较时引发TypeError

这是Python2的正确行为,如果有问题,那么您可以做的最好的事情是切换到Python3,它在这方面和许多其他方面都更明智。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19331674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档