python2中的max()失败 - >不支持使用`>`进行python3转换

时间:2017-12-03 03:28:57

标签: python python-3.x python-2.7

从python 2.x转换时 - > python 3.x,我发现内置max函数的行为发生了这种变化。我没有在迁移问题的任何标准位置找到它。 https://eev.ee/blog/2016/07/31/python-faq-how-do-i-port-to-python-3/ http://python-future.org/compatible_idioms.html

我该如何解决这个问题?

Python 2.x:

In [1]: max([None, None, None])
In [2]: 

Python 3.x:

In [3]: max([None, None, None])
---------------------------------------------------------------------------
TypeError                                
Traceback (most recent call last) <ipython-input-3-f82c85b9875c> in <module>()
----> 1 max([None, None, None])

TypeError: '>' not supported between instances of 'NoneType' and 'NoneType'

2 个答案:

答案 0 :(得分:-1)

回答我自己的问题:没有向后兼容的try{ Connection c = dbConnection.getConnection(); Statement stmt = c.createStatement(); String sql = "CREATE TABLE IF NOT EXISTS notes" + "(ID INT PRIMARY KEY NOT NULL," + " NAME TEXT NOT NULL, " + " AGE INT NOT NULL, " + " ADDRESS CHAR(50), " + " SALARY REAL)"; stmt.executeUpdate(sql); stmt.close(); c.close(); }catch(Exception e2) {System.out.print(e2);} ,但有争议的是,尝试找到max的最大值并不合理。

我比较的条目是时间戳,我知道它们永远不会是负面的。所以我更改了代码以返回None而不是0,因此None转向了max

如果您无法对数据做出此类保证,则可以返回max([0,0,0])

-sys.maxsize

注意In [7]: max([-sys.maxsize, -sys.maxsize, -sys.maxsize]) Out[7]: -9223372036854775807 而不是sys.maxsize,这是一个记录在案的更改。 What is sys.maxint in Python 3?

答案 1 :(得分:-1)

没有代表缺少价值 在Python3中显示错误消息,因为您不搜索类型为NoneType

的参数列表中的最大项