为什么数据库行元组中的整数后缀为"L"? [英] Why do integers in database row tuple have an 'L' suffix?
问题描述
我的问题是,为什么MySQL行的整数值带有'L'后缀?详细信息如下:
My question is why do a MySQL row's integer values have an 'L' suffix? Here are the details:
以下字典-为便于显示而在此处人工格式化-
The following dictionary -- artificially formatted here for ease of display --
{'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数据库表的各列组成,这些列的压缩结果为从表中读取一次.
is comprised of a MySQL database table's columns zipped with the result of reading once from the table.
我可以通过将这些值传递给int()来删除'L',因此,如果该字典位于名为snapped_read的变量中,我可以这样做:
I can remove the 'L' by passing these values into int(), so if that dictionary were in a variable named snapped_read, I could do this:
int(snapped_read['reading'])
和3018L
将更改为3018
.
我很好奇为什么整数会以这种方式出现.
I'm just curious as to why integers show up this way.
推荐答案
由于在Python 3之前的Python版本中,长整数文字使用后缀l
或L
表示.在Python 3中,int
和long
被合并为int
,其功能与long
过去非常相似.
Because in versions of Python before Python 3, long integer literals were indicated with an l
or L
suffix. In Python 3, int
s and long
s have been merged into just int
, which functions pretty much like long
used to.
请注意,从技术上讲,Python(2)的int
等同于C的long
,而Python的long
更像是具有无限精度的BigNumber
类型的东西(现在就是这种情况)用于Python 3的int
类型.)
Do note that, technically, Python( 2)'s int
was equivalent to C's long
, while Python's long
was more like a BigNumber
-type thing with unlimited precision (which is now the case for Python 3's int
type.)
http://docs.python. org/library/stdtypes.html#numeric-types-int-float-long-complex
这篇关于为什么数据库行元组中的整数后缀为"L"?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!