질문 : 파이썬에서 객체의 크기를 어떻게 결정합니까?
파이썬에서 문자열, 정수 등과 같은 객체의 크기를 얻는 방법을 알고 싶습니다.
관련 질문 : 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
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python으로 단위 테스트 작성하는 방법 (0) | 2021.07.01 |
---|---|
arr .__ len __ ()은 파이썬에서 배열의 길이를 얻는 데 선호되는 방법 (0) | 2021.07.01 |
중첩 된 디렉토리를 안전하게 만드는 방법 (0) | 2021.06.29 |
Python의 경로에서 확장자없이 파일 이름을 얻는 방법 (0) | 2021.06.29 |
Python에서 "with open"을 사용하여 여러 파일을 여는 방법 (0) | 2021.06.28 |