如何在Python中使用sizeof函數(shù)獲取對(duì)象大小

小樊
120
2024-08-27 12:30:04

在 Python 中,可以使用 sys.getsizeof() 函數(shù)來(lái)獲取一個(gè)對(duì)象的大?。ㄒ宰止?jié)為單位)。這個(gè)函數(shù)返回指定對(duì)象(參數(shù)可以是一個(gè)變量名或者一個(gè)值)在內(nèi)存中所占的字節(jié)數(shù)。需要注意的是,這個(gè)函數(shù)僅返回對(duì)象本身的大小,而不是它引用的其他對(duì)象的大小。

下面是一個(gè)簡(jiǎn)單的示例:

import sys

# 獲取一個(gè)整數(shù)的大小
num = 12345
size_of_num = sys.getsizeof(num)
print(f"Size of {num} is {size_of_num} bytes")

# 獲取一個(gè)字符串的大小
text = "Hello, World!"
size_of_text = sys.getsizeof(text)
print(f"Size of '{text}' is {size_of_text} bytes")

# 獲取一個(gè)列表的大小
my_list = [1, 2, 3, 4, 5]
size_of_list = sys.getsizeof(my_list)
print(f"Size of {my_list} is {size_of_list} bytes")

請(qǐng)注意,sys.getsizeof() 只計(jì)算對(duì)象本身的大小,而不是它引用的其他對(duì)象的大小。如果你想要計(jì)算一個(gè)對(duì)象及其所有引用的對(duì)象的總大小,可以使用 pympler.asizeof 函數(shù)。首先,你需要安裝 pympler 模塊:

pip install pympler

然后,你可以使用 pympler.asizeof.asizeof() 函數(shù)來(lái)計(jì)算一個(gè)對(duì)象及其所有引用的對(duì)象的總大?。?/p>

from pympler import asizeof

# 創(chuàng)建一個(gè)包含多個(gè)元素的列表
my_list = [1, 2, [3, 4], "Hello, World!"]

# 計(jì)算列表及其所有引用的對(duì)象的總大小
total_size = asizeof.asizeof(my_list)
print(f"Total size of {my_list} and its referenced objects is {total_size} bytes")

這將輸出列表及其所有引用的對(duì)象的總大小。

0