>  기사  >  백엔드 개발  >  __slots__는 파이썬에서 무엇을 할 수 있나요? (예시분석)

__slots__는 파이썬에서 무엇을 할 수 있나요? (예시분석)

乌拉乌拉~
乌拉乌拉~원래의
2018-08-22 17:06:531310검색

이 기사에서는 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: &#39;Student&#39; object has no attribute &#39;score&#39;

Due to 'score'는 __slots__에 배치되지 않으므로 점수 속성을 바인딩할 수 없습니다. 점수를 바인딩하려고 하면 AttributeError가 발생합니다.

__slots__를 사용할 때 __slots__에 의해 정의된 속성은 현재 클래스 인스턴스에만 영향을 미치고 상속된 하위 클래스에는 영향을 미치지 않는다는 점에 유의하십시오. 인스턴스는 자체 __slots__와 상위 클래스의 __slots__을 정의할 수 있습니다.

위 내용은 이 글의 모든 내용입니다. 이 글은 주로

python__slots__

관련 지식을 소개하는 내용입니다. 위 내용을 이해하는 데 참고하시기 바랍니다. 이 글에서 제가 설명한 내용이 여러분에게 도움이 되고 파이썬을 더 쉽게 배울 수 있기를 바랍니다. 더 많은 관련 지식을 알고 싶으시면 PHP 중국어 홈페이지의

Python tutorial

칼럼을 방문해 주세요.

위 내용은 __slots__는 파이썬에서 무엇을 할 수 있나요? (예시분석)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.