一尘不染

为什么数据库行元组中的整数后缀为“ L”?

mysql

我的问题是,为什么MySQL行的整数值带有“ L”后缀?详细信息如下:

以下字典-为便于显示,在此处经过人工格式化-

{'estimated': '', 
 'suffix': '', 
 'typeofread': 'g', 
  'acct_no': 901001000L, 
  'counter': 0, 
  'time_billed': datetime.datetime(2012, 5, 1, 9, 5, 33), 
  'date_read': datetime.datetime(2012, 3, 13, 23, 19, 45), 
  'reading': 3018L, 
  'meter_num': '26174200'}

由MySQL数据库表的各列组成,这些列的压缩结果为从表中读取一次。

我可以通过将这些值传递给int()来删除“ L”,因此,如果该字典位于名为snapped_read的变量中,则可以执行以下操作:

int(snapped_read['reading'])3018L会改变3018

我只是好奇为什么整数会以这种方式出现。


阅读 335

收藏
2020-05-17

共1个答案

一尘不染

因为在Python 3之前的Python版本中,长整数文字用lL后缀表示。在Python 3中,ints和longs已合并为just
int,其功能与以前非常相似long

请注意,从技术上讲,Python(2)int等同于C long,而Python
long则更像是BigNumber-类型的东西,具有无限的精度(现在Python 3的int类型就是这种情况)。

http://docs.python.org/library/stdtypes.html#numeric-types-int-float-long-
complex

2020-05-17