为什么数据库行元组中的整数有一个'L'后缀?

我的问题是为什么一个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的variables中,我可以这样做:

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

我只是好奇为什么整数显示这种方式。

因为在Python 3之前的Python版本中,长整型文字用lL后缀表示。 在Python 3中, int s和long s已经被合并到int ,这些函数几乎就像long以前一样。

请注意,在技术上,Python(2)的int等于C的long ,而Python的long更像是一个无限精度的BigNumbertypes的东西(现在是Python 3的inttypes的情况)。

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

L表示long数据types。

例如,

 age = 24 # int bankBalance = 20000005L # long 

因为它们不完全是整数,所以它们是“长”的。

http://docs.python.org/library/stdtypes.html#typesnumeric

但是他们通常不会提供太多的麻烦

 >>> a=1 >>> b=long(1) >>> a 1 >>> b 1L >>> a==b True 

其他关于这个stackoverflow问题: 在这里