2024-05-14 18:08:22 发布
网友
在python中如何使用NSMALLPOSINTS、NSMALLNEGINTS宏? nsmallnegint在-5到0的范围内,而{}在0到256的范围内?在
NSMALLPOSINTS
NSMALLNEGINTS
nsmallnegint
编辑: 我仍然不清楚为什么NSMALLPOSINTS,NSMALLNEGINTS有这些值。在
回答我自己的问题:使用这些值,因为它们是最常用的整数!在
为了更好地理解NSMALLPOSINTS和NSMALLNEGINTS是如何工作的:
它实际上是一个262个整数的数组(最常用)。这个结构基本上是用来快速存取这些整数。当您初始化NSMALLPOSINTS和NSMALLNEGINTS时,它们就被分配了。在
#define NSMALLPOSINTS 257 #define NSMALLNEGINTS 5
范围是从-5(包含)到257(非包含)是正确的。 在Python int对象的源代码中,定义了名为nsmallposint和NSMALLNEGINTS的宏。在
Python source code for NSMALLPOSINTS and NSMALLNEGINTs
结果是Python为“所有-5到256之间的整数”保留了一个整数对象数组。当我们在这个范围内创建一个int时,我们实际上只是得到内存中现有对象的引用。在
如果我们设置x=42,我们实际上是在整数块中搜索-5到+257范围内的值。一旦x超出这个范围,它将被垃圾回收(销毁),成为一个完全不同的对象。创建一个新的整数对象然后销毁它的过程会立即创建大量无用的计算循环,因此Python预先分配了一系列常用的整数。在
回答我自己的问题:使用这些值,因为它们是最常用的整数!在
为了更好地理解
NSMALLPOSINTS
和NSMALLNEGINTS
是如何工作的:它实际上是一个262个整数的数组(最常用)。这个结构基本上是用来快速存取这些整数。当您初始化
NSMALLPOSINTS
和NSMALLNEGINTS
时,它们就被分配了。在范围是从-5(包含)到257(非包含)是正确的。 在Python int对象的源代码中,定义了名为nsmallposint和NSMALLNEGINTS的宏。在
Python source code for NSMALLPOSINTS and NSMALLNEGINTs
结果是Python为“所有-5到256之间的整数”保留了一个整数对象数组。当我们在这个范围内创建一个int时,我们实际上只是得到内存中现有对象的引用。在
如果我们设置x=42,我们实际上是在整数块中搜索-5到+257范围内的值。一旦x超出这个范围,它将被垃圾回收(销毁),成为一个完全不同的对象。创建一个新的整数对象然后销毁它的过程会立即创建大量无用的计算循环,因此Python预先分配了一系列常用的整数。在
相关问题 更多 >
编程相关推荐