分享

python 中sys.getsizeof的用法说明

 流形sbz 2024-02-05 发布于甘肃

当我们使用Python编写代码时,需要了解如何检查变量或对象所占的内存空间大小。 sys.getsizeof()是Python内置模块sys中的一个函数,用于获取Python对象的字节大小,包括对象自身使用的空间以及对象引用的其他对象的空间。

1. 函数用法说明

函数调用

import sys sys.getsizeof(object[, default]) -> int

参数说明

  • object:必选,需要获取大小的对象。
  • default:可选参数,默认值为None,当对象没有实现__sizeof__时返回该值。

返回值

返回对象的大小,以字节表示(Byte)。

2. 示例说明

示例1

import sys

lst = [1, 2, 3, 4, 5]
lst_size = sys.getsizeof(lst)

print('List size in bytes: ', lst_size)

输出结果:

List size in bytes: 120

解释:

  • 该示例中我们定义了一个列表lst,其中包含5个元素。
  • 使用sys.getsizeof()函数获取列表lst所占用的内存空间大小lst_size。
  • 输出列表lst所占用内存空间的大小。

示例2

import sys

class Employee():
  def __init__(self, name, age, salary, department):
    self.name = name
    self.age = age
    self.salary = salary
    self.department = department

employee1 = Employee('John Smith', 30, 5000, 'Sales')
employee2 = Employee('Mary Johnson', 35, 7000, 'Marketing')

employee1_size = sys.getsizeof(employee1)
employee2_size = sys.getsizeof(employee2)

print('Employee1 size in bytes: ', employee1_size)
print('Employee2 size in bytes: ', employee2_size)

输出结果:

Employee1 size in bytes: 56 Employee2 size in bytes: 56

解释:

  • 该示例中我们定义了一个叫做Employee的类,它有4个属性:name,age,salary和department。
  • 创建了2个Employee对象:employee1和employee2。
  • 使用sys.getsizeof()函数获取了这2个Employee对象所占用的内存空间大小。
  • 输出employee1和employee2所占用的内存空间大小。由于两个对象包含相同的属性组合,并且Python使用引用来存储对象的属性,因此它们占用相同的大小。

3. 总结

sys.getsizeof()函数是Python内置模块sys中的一个函数,用于获取Python对象的字节大小,可以用来帮助开发人员确保内存使用效率。在使用期间需要注意:

  • 函数返回的单位是字节(Byte)。
  • 只能计算Python对象所占用的内存空间大小,无法计算C语言库中的内存空间大小。
阅读剩余 95%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 中sys.getsizeof的用法说明 - Python技术站

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多