为什么数据库行元组中的整数具有 L"后缀?

本教程将介绍为什么数据库行元组中的整数具有“L"后缀?的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

为什么数据库行元组中的整数具有 L"后缀? 教程 第1张

问题描述

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'}

is comprised of a MySQL database table's columns zipped with the result of reading once from the table.

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']) and 3018L would change to 3018.

I'm just curious as to why integers show up this way.

解决方案

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.

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.)

好了关于为什么数据库行元组中的整数具有“L"后缀?的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。