编程语言
首页 > 编程语言> > python-布尔值的存储空间中存储的值是多少?

python-布尔值的存储空间中存储的值是多少?

作者:互联网

我对内存空间分配不了解很多.对于每个变量,都会分配一个内存空间,因此对于Python中的布尔变量,将在该变量的内存空间中存储什么值?

解决方法:

注意:以下描述适用于Python的CPython参考解释器.实施细节将在其他解释器中有所不同,例如PyPy,Jython,IronPython等

Python的布尔对象是单例.因此,如果您说:

a = True
b = bool('nonzerolen')

然后,您有两个对True的单例实例的引用(分别为a和b);除了用于保存每个引用的指针外,没有分配任何额外的内存.

对于实例本身,碰巧,bool是int的子类,因此该实例与Python int具有相同的布局,其值是0或1.对象本身从Python 2到Python 3略有不同,但是基本上标准Python对象标头(包括对类类型的引用和引用计数),加上0或1(在Python 2中为带符号的size_t,在Python 3中为16或32位值的单个元素数组).

标签:python-3-x,language-lawyer,python-2-7,boolean,python
来源: https://codeday.me/bug/20191027/1947754.html