이 기사에서는 python__slots__에 대한 관련 지식에 대해 알아보겠습니다. 일부 친구들은 프로그래밍 언어 Python을 접했을 수도 있고 이 측면에 대해 특별한 이해가 없을 수도 있습니다. 파이썬__slots__.
인스턴스의 속성을 제한하고 싶다면 어떻게 해야 하나요? 예를 들어, 학생 인스턴스에는 이름 및 나이 속성만 추가할 수 있습니다.
제한 목적을 달성하기 위해 Python에서는 클래스 인스턴스에 추가할 수 있는 속성을 제한하기 위해 클래스를 정의할 때 특별한 __slots__ 변수를 정의할 수 있습니다.
class Student(object): __slots__ = ('name', 'age') # 用tuple定义允许绑定的属性名称
그런 다음 시도해 보겠습니다.
>>> s = Student() # 创建新的实例 >>> s.name = 'Michael' # 绑定属性'name' >>> s.age = 25 # 绑定属性'age' >>> s.score = 99 # 绑定属性'score' Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'Student' object has no attribute 'score'
Due to 'score'는 __slots__에 배치되지 않으므로 점수 속성을 바인딩할 수 없습니다. 점수를 바인딩하려고 하면 AttributeError가 발생합니다.
__slots__를 사용할 때 __slots__에 의해 정의된 속성은 현재 클래스 인스턴스에만 영향을 미치고 상속된 하위 클래스에는 영향을 미치지 않는다는 점에 유의하십시오. 인스턴스는 자체 __slots__와 상위 클래스의 __slots__을 정의할 수 있습니다.
위 내용은 이 글의 모든 내용입니다. 이 글은 주로
python__slots__관련 지식을 소개하는 내용입니다. 위 내용을 이해하는 데 참고하시기 바랍니다. 이 글에서 제가 설명한 내용이 여러분에게 도움이 되고 파이썬을 더 쉽게 배울 수 있기를 바랍니다. 더 많은 관련 지식을 알고 싶으시면 PHP 중국어 홈페이지의
Python tutorial위 내용은 __slots__는 파이썬에서 무엇을 할 수 있나요? (예시분석)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!