我很困惑为什么:
len(b'123') == 3
import sys
sys.getsizeof(b'123') == 36
究竟是b'123'
什么?
正如@jonrsharpe 所说,b'123'
是一个不可变的字节序列,在这种情况下为 3 个字节。您的困惑似乎是因为len()
和sys.getsizeof(b'123')
不是一回事。
len()
查询容器中包含的项目数。对于字符数的字符串,在您的情况下,您有 3 个字节,因此其长度为 3。
返回对象的长度(项目数)。参数可以是序列(字符串、元组或列表)或映射(字典)。
sys.getsizeof()
另一方面,返回对象的内存大小,这意味着您不仅获得了字节的大小,因为它是一个完整的对象,它还具有其方法、属性、地址......所有这些都被视为该大小。
以字节为单位返回对象的大小。对象可以是任何类型的对象。所有内置对象都将返回正确的结果,但对于第三方扩展,这不一定适用,因为它是特定于实现的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句