从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'
答案 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
的参数列表中的最大项