본문 바로가기
Programming/python

python, property decorator 을 이용한 get/set 구현

by 단창 2019. 9. 9.

파이썬 클래스는 _ (underscore, 밑줄)을 이용한 변수 naming으로 private 변수, 함수, 클래스를 구현할 수 있다.(완벽한 private는 아님) 

 

1. sinlge underscore : _var_name 의 형태

클래스 내부에서 사용되는 형태지만, 해당 모듈을 import로 불러올때는 제외된다. (weak internal use indicator)

클래스 외부에서 직접 접근이 가능하다.

 

2. double underscore : __var_name 의 형태 

클래스 내부에서 사용되는 형태. 외부에서 직접 접근이 불가능 하다. private처럼 동작하는데 완벽한 private는 아니다. (외부에서 접근하는 방법이 존재)

 

class Movie:
    def __init__(self, movie_name):
        self.__movie_name = movie_name
        
    @property
    def movie_name(self):
        return self.__movie_name
    
    @movie_name.setter
    def movie_name(self, new_movie_name):
        """영화를 변경하는 setter 메서드"""
        self.__movie_name = new_movie_name
        print("==== setter 을 통해 영화를 변경합니다 ====")
        print('변경후 영화이름 : {}'. format(self.movie_name))
        
        
 movie = Movie('총알탄사나이') 
 movie.movie_name = '히든피겨스' #set
 movie.movie_name #get

 

https://hongku.tistory.com/335

https://mingrammer.com/underscore-in-python/

https://whatisthenext.tistory.com/115

반응형