为什么数据库行元组中的整数有一个'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
更像是一个无限精度的BigNumber
types的东西(现在是Python 3的int
types的情况)。
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问题: 在这里