python 중slots__메모리 절약 의 구체 적 인 방법
1.이용slots__클래스 속성 은 인 스 턴 스 속성 을 원 zu 에 저장 하여 저장 공간 을 크게 절약 할 수 있 습 니 다.
2、모든 속성 은 로 정의 해 야 합 니 다slots__원 그룹,하위 클래스 는 정의 해 야 합 니 다slots__。
인 스 턴 스 가 약 한 인용 을 지원 하려 면weakref 에 추가slots__。
실례
class Vector2d:
__slots__ = ('__x', '__y')
typecode = 'd'
지식 포인트 확장:__slots__
한 클래스 에서 를 정의 하면slots__속성,그러면 이 종류의 인 스 턴 스 는 를 가지 지 않 습 니 다.dict__속성,없 음dict__의 인 스 턴 스 도 인 스 턴 스 속성 을 추가 할 수 없습니다.쉽게 말 하면slots__클래스 가 실례 화 될 때 실례 적 으로 분배 되 는 것 을 막 는 역할 을 합 니 다dict__속성,이 인 스 턴 스 가 추가 할 수 있 는 속성 을 제한 합 니 다.
역할.
일반적인 상황 에서 인 스 턴 스 사용dict__자신의 속성 을 저장 합 니 다.속성 을 동적 으로 추가 하거나 삭제 할 수 있 습 니 다.그러나 컴 파일 기간 에 어떤 변수 가 있 는 지 알 고 있 거나 동적 으로 변 수 를 추가 할 수 없 는 클래스 에 있어 서 변 수 를 동적 으로 추가 할 필요 가 없습니다.인 스 턴 스 속성 을 제한 하려 면 동적 으로 속성 을 추가 하지 않 으 려 면 어떻게 합 니까?예 를 들 어 우 리 는 A 의 인 스 턴 스 에 name 과 age 속성 만 추가 할 수 있 습 니 다.
상기 목적 을 달성 하기 위해 Python 은 class 를 정의 할 때 를 정의 할 수 있 습 니 다.slots__변 수 는 이 class 의 인 스 턴 스 가 추가 할 수 있 는 속성 을 제한 합 니 다.
class A(object):
__slots__ = ('age','name')
a = A()
a.name = 'xiaoming'
a.age = 10
a.id = 123456 #error AttributeError: 'A' object has no attribute 'id'
id 가 없어 서slots__중,따라서 인 스 턴 스 는 id 속성 을 추가 할 수 없습니다.실례 에 이름 을 추가 하려 는 시도 가 없 음slots__속성 이 모두 AttributeError 이상 을 촉발 합 니 다.이상 은 python 중slots__메모리 절약 에 대한 구체 적 인 방법 에 대한 자세 한 내용 은 python 중slots__어떻게 메모리 의 자 료 를 절약 할 것 인 가 는 우리 의 기타 관련 문장 에 관심 을 가 져 주 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.