为什么数据库行元组中的整数后缀为"L"? [英] Why do integers in database row tuple have an 'L' suffix?

查看:47
本文介绍了为什么数据库行元组中的整数后缀为"L"?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题是,为什么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版本中,长整数文字使用后缀lL表示.在Python 3中,intlong被合并为int,其功能与long过去非常相似.

Because in versions of Python before Python 3, long integer literals were indicated with an l or L suffix. In Python 3, ints and longs 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆