为什么数据库行元组中的整数有一个'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版本中,长整型文字用l或L后缀表示。 在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问题: 在这里