当我们使用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语言库中的内存空间大小。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 中sys.getsizeof的用法说明 - Python技术站