프로그래밍 언어/Python

파이썬에서 객체의 크기를 확인하는 방법

Rateye 2021. 6. 30. 10:36
728x90
반응형
질문 : 파이썬에서 객체의 크기를 어떻게 결정합니까?

파이썬에서 문자열, 정수 등과 같은 객체의 크기를 얻는 방법을 알고 싶습니다.

관련 질문 : Python 목록 (튜플)에는 요소 당 몇 바이트가 있습니까?

값의 크기를 지정하는 크기 필드가 포함 된 XML 파일을 사용하고 있습니다. 이 XML을 구문 분석하고 코딩을해야합니다. 특정 필드의 값을 변경하고 싶을 때 해당 값의 크기 필드를 확인합니다. 여기서 입력하려는 새 값이 XML과 동일한 크기인지 비교하고 싶습니다. 새로운 가치의 크기를 확인해야합니다. 문자열의 경우 길이라고 말할 수 있습니다. 그러나 int, float 등의 경우 혼란 스럽습니다.

답변

sys 모듈에 정의 된 sys.getsizeof 함수를 사용하십시오.

sys.getsizeof(object[, default]) :

객체의 크기를 바이트 단위로 반환합니다. 개체는 모든 유형의 개체가 될 수 있습니다. 모든 기본 제공 개체는 올바른 결과를 반환하지만 구현에 따라 다르기 때문에 타사 확장에 대해 참일 필요는 없습니다.

참조하는 개체의 메모리 사용량이 아니라 개체에 직접 기인 한 메모리 사용량 만 고려됩니다.

default 인수는 객체 유형이 크기를 검색하는 수단을 제공하지 않고 TypeError 유발할 경우 반환 될 값을 정의 할 수 있습니다.

getsizeof __sizeof__ 메서드를 호출하고 객체가 가비지 수집기에 의해 관리되는 경우 추가 가비지 수집기 오버 헤드를 추가합니다.

컨테이너의 크기와 모든 내용을 찾기 위해 getsizeof() 재귀 적으로 사용하는 예제는 recursive sizeof recipe 를 참조하십시오.

파이썬 3.0의 사용 예 :

>>> import sys
>>> x = 2
>>> sys.getsizeof(x)
24
>>> sys.getsizeof(sys.getsizeof)
32
>>> sys.getsizeof('this')
38
>>> sys.getsizeof('this also')
48

Python <2.6이고 sys.getsizeof 가없는 경우이 광범위한 모듈을 대신 사용할 수 있습니다. 그래도 사용하지 않았습니다.

출처 : https://stackoverflow.com/questions/449560/how-do-i-determine-the-size-of-an-object-in-python
728x90
반응형