【发布时间】:2013-03-05 07:01:55
【问题描述】:
假设我想比较 2 个具有不同数据类型的变量:字符串和整数。我已经在 Python 2.7.3 和 Python 3.2.3 中对其进行了测试,并且都没有抛出异常。比较的结果是False。在这种情况下,我可以使用不同的选项配置或运行 Python 以引发异常吗?
ks@ks-P35-DS3P:~$ python2
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a="123"
>>> b=123
>>> a==b
False
>>>
ks@ks-P35-DS3P:~$ python3
Python 3.2.3 (default, Apr 12 2012, 19:08:59)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a="123"
>>> b=123
>>> a==b
False
>>>
ks@ks-P35-DS3P:~$
【问题讨论】:
-
您是否要为所有对象重载
__eq__? -
你真正想做的是什么?
-
@Burhan Khalid:我想保护自己免受无关类型的意外比较,并尽早了解它。
-
“不相关”类型不同于“不同”类型。你可能想澄清你的意思。例如,当您将 unicode 与 str 进行比较时,您是否想要异常?浮点数和整数呢?我认为添加这样的异常非常微妙,可能不会做你想要的。
-
避免此类事故的最好方法是编写单元测试
标签: python exception types error-handling