2024-04-25 02:15:55 发布
网友
在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? 在python3中,这些将引发一个异常。有没有办法让Python2已经这样做了?看看^{}我不知道是否有这样的功能。你知道吗
不,你的选择是:
编写并使用在不需要的比较中引发的包装类。
编写并使用自定义比较函数来代替常用的运算符。
使用类似MacroPy的工具可以让你的自定义比较函数不那么讨厌。
不要依赖这些语义。
比较前预先检查值。
如果需要python3,请使用python3。
你不能monkeypatch内置类型(至少不去C源代码),你也不应该。您只能对它们进行子类化,并让它们在非法比较时引发TypeError。你知道吗
TypeError
对于Python2来说,这是正确的(如果有问题的话)行为,因此最好的方法是切换到Python3,它在这方面和其他许多方面都更合理。你知道吗
不,你的选择是:
编写并使用在不需要的比较中引发的包装类。
编写并使用自定义比较函数来代替常用的运算符。
使用类似MacroPy的工具可以让你的自定义比较函数不那么讨厌。
不要依赖这些语义。
比较前预先检查值。
如果需要python3,请使用python3。
你不能monkeypatch内置类型(至少不去C源代码),你也不应该。您只能对它们进行子类化,并让它们在非法比较时引发
TypeError
。你知道吗对于Python2来说,这是正确的(如果有问题的话)行为,因此最好的方法是切换到Python3,它在这方面和其他许多方面都更合理。你知道吗
相关问题 更多 >
编程相关推荐