>  기사  >  백엔드 개발  >  Python의 속성 구문을 사용하는 방법에 대한 자세한 설명

Python의 속성 구문을 사용하는 방법에 대한 자세한 설명

高洛峰
高洛峰원래의
2017-03-26 18:56:472098검색

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 함수를 클래스의 속성으로 바꾸는 것이며 읽기 전용입니다. 효과는 다음과 같습니다.

Python의 속성 구문을 사용하는 방법에 대한 자세한 설명 위 그림과 같이 메소드는 속성에 접근할 수 있는 속성이 됩니다. 그러나 해당 값을 수정하면 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는 읽기 및 쓰기가 가능합니다.

Python의 속성 구문을 사용하는 방법에 대한 자세한 설명위와 같이 base_index는 읽고 쓸 수 있습니다.

마지막으로

속성은 Python의 좋은 구문 기능이므로 프로그래밍에서 자주 사용해야 합니다.

위 내용은 Python의 속성 구문을 사용하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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