"Python @property"의 두 판 사이의 차이

5번째 줄: 5번째 줄:


==예시==
==예시==
메소드가 <code>@property</code>에 의해 프라퍼티로 사용 되는 경우
1. 메소드가 <code>@property</code>에 의해 프라퍼티로 사용 되는 경우
{{소스헤더|코드}}
{{소스헤더|코드}}
<source lang='python'>
<source lang='python'>
22번째 줄: 22번째 줄:
<source lang='console'>
<source lang='console'>
ZETAWIKI
ZETAWIKI
</source>
2.읽기 전용으로 사용 되어 값 변경 시도시 에러 발생
{{소스헤더|코드}}
<source lang='python'>
class Site(object):
    def __init__(self, name):
        self.name = name
    @property
    def get_site_name(self):
        return self.name
S = Site("ZETAWIKI")
S.get_site_name = "GOOGLE"
</source>
{{소스헤더|실행}}
<source lang='python'>
Traceback (most recent call last):
  File "d.py", line 10, in <module>
    S.get_site_name = "GOOGLE"
AttributeError: can't set attribute
</source>
</source>



2018년 8월 10일 (금) 15:41 판

1 개요

python @property
  • 메소드를 프라퍼티로 접근 가능하도록 해줌
  • 프라퍼티(property)의 읽기 전용(read-only) 속성 변경 목적으로 많이 사용됨

2 예시

1. 메소드가 @property에 의해 프라퍼티로 사용 되는 경우

코드
class Site(object):
    def __init__(self, name):
        self.name = name

    @property
    def get_site_name(self):
        return self.name

S = Site("ZETAWIKI")
print(S.get_site_name)
실행
ZETAWIKI

2.읽기 전용으로 사용 되어 값 변경 시도시 에러 발생

코드
class Site(object):
    def __init__(self, name):
        self.name = name

    @property
    def get_site_name(self):
        return self.name

S = Site("ZETAWIKI")
S.get_site_name = "GOOGLE"
실행
Traceback (most recent call last):
  File "d.py", line 10, in <module>
    S.get_site_name = "GOOGLE"
AttributeError: can't set attribute

3 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}