> 백엔드 개발 > 파이썬 튜토리얼 > Python 클래스 속성 설명

Python 클래스 속성 설명

coldplay.xixi
풀어 주다: 2021-01-08 14:13:54
앞으로
1837명이 탐색했습니다.

Python 클래스 속성 설명

관련 무료 학습 권장사항: python 비디오 튜토리얼

  • __getattr__은 클래스가 존재하지 않는 속성을 호출할 때 호출되는 getattr 매직 함수입니다. 호출되는 값이 존재하지 않습니다.

class User(object):
    def __init__(self, name, info):
        self.name = name
        self.info = info
ls = User("李四",{"gender":"male"})print(ls.info)运行结果:{'gender': 'male'}
로그인 후 복사

남성 속성을 얻으려면 __getattr__마법의 방법을 사용해야 합니다.

class User(object):
    def __init__(self, name, info):
        self.name = name
        self.info = info    def __getattr__(self, item):
        return self.info[item]ls = User("李四",{"gender":"male"})print(ls.gender)运行结果:
male
로그인 후 복사
  • 속성 설명자는 강력한 일반 프로토콜입니다. 이는 속성, 메서드, 정적 메서드, 클래스 메서드
    및 super()의 호출 원리입니다.
  • 속성 설명자는 특정 프로토콜을 구현하는 클래스입니다. __get__, __set__ 및 __delete__ 세 가지 방법 중 하나가 구현되면 이 클래스는 여러 속성에 대한 동일한 액세스를 구현할 수 있는 설명자입니다. 평신도의 관점에서 다른 클래스의 클래스 속성으로 인스턴스를 만드는 것입니다.
  • 객체가 __get__ 및 __set__ 메서드를 모두 정의하는 경우 이를 데이터 설명자라고 합니다.
    __get__ 메서드만 정의하는 개체를 비데이터 설명자라고 합니다.
  • 클래스 메소드를 사용하여 디스크립터 생성 • IntField 클래스를 디스크립터 클래스로 정의 • IntField 클래스의 인스턴스를 다른 User 클래스의 속성으로 생성
class User:
    def __init__(self, age):
        self.age = age    def get_age(self):
        return (str(self.age) + '岁')

    def set_age(self, age):
        if not isinstance(age, int):
            raise TypeError('Type Error')
        self.age = age

tt=User(55)tt.set_age(60)print(tt.get_age())运行结果:60岁
로그인 후 복사
  • Descriptor 검색 순서 • 데이터 디스크립터인 경우 get_ _는 __dict보다 우선순위가 높습니다. •
    데이터 설명자가 아닌 경우 dict__는 __get

보다 우선순위가 높습니다. 프로그래밍 관련 지식을 더 보려면 프로그래밍 튜토리얼을 방문하세요! !

위 내용은 Python 클래스 속성 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿