Python에는 C#의 get set 구문과 유사한 속성 구문이 있습니다. 해당 함수에는 다음 두 가지 사항이 있습니다.
클래스 메서드를 읽기 전용 속성으로 설정합니다. 속성 getter 및 setter 메서드
다음은 이 두 가지 사항에 중점을 둡니다.
클래스 메서드를 읽기 전용 속성으로 설정
먼저 다음 코드를 읽어보세요
class Book(object): def __init__(self, title, author, pub_date): self.title = title self.author = author self.pub_date = pub_date @property def des_message(self): return u'书名:%s, 作者:%s, 出版日期:%s' % (self.title, self.author, self.pub_date)
이 코드에서 속성은 des_message 함수를 장식하는 데코레이터로 사용됩니다. 해당 기능은 des_message 함수를 클래스의 속성으로 바꾸는 것이며 읽기 전용입니다. 효과는 다음과 같습니다.
위 그림과 같이 메소드는 속성에 접근할 수 있는 속성이 됩니다. 그러나 해당 값을 수정하면 AttributeError 오류가 보고됩니다. 이는 읽기 전용입니다
속성의 getter 및 setter 메서드를 구현하세요
그런 다음 다음 코드를 확인하세요.
class Array(object): def __init__(self, length=0, base_index=0): assert length >= 0 self._data = [None for i in xrange(length)] self._base_index = base_index def get_base_index(self): return self._base_index def set_base_index(self, base_index): self._base_index = base_index base_index = property( fget=lambda self: self.get_base_index(), fset=lambda self, value: self.set_base_index(value) )
여기에서는 속성을 사용하여 base_index의 fget 및 fset 함수를 구현하는 클래스 Array에 대한 base_index 속성을 설정합니다. base_index는 읽기 및 쓰기가 가능합니다.
위와 같이 base_index는 읽고 쓸 수 있습니다.
마지막으로
속성은 Python의 좋은 구문 기능이므로 프로그래밍에서 자주 사용해야 합니다.
위 내용은 Python의 속성 구문을 사용하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!