접근제어자(Access Modifier)
접근 제어자에는 public , private , protected , default 가 있다.
파이썬은 다른언어와 달리 접근 제어자가 없고 작명법으로 접근을 제어할 수 있다. 파이썬에서의 작명법은 아래와 같다.
- public → 접두사에 아무 밑줄이 없다.
- private → 접두사에 두개의 밑줄(__)을 적용
- protected → 접두사에 한개의 밑줄(_) 을 적용
class Example : def __init__(self):
pass def public(self):
print('public') def _protected(self):
print('protected') def __private(self):
print('private')
Get, Set
다른 언어에서 private 를 사용한 속성값이 있을때 그것을 가져오기 위해서는 get , set 메소드를 쓴다. 파이썬에서는 다음과 같이 사용할 수 있다.
class Person : def __init__(self):
self.__name = 'hong' def get_name(self):
return self.__name def set_name(self, name):
self.__name = name
위와 같이 get , set 메소드를 만들면 함수가 너무 많아지고 복잡해진다.
@property
파이썬에서는 @property 데코레이터를 이용하여 위의 get , set 메소드보다 더욱 직관적으로 표현이 가능하다.
class Person : def __init__(self):
self.__name = 'hong' @property
def name(self):
return self.__name @name.setter
def name(self, name):
self.__name = nameperson = Person()
print(person.name) # hong
person.name = 'park'
print(person.name) # park
get의 역할은 property , set의 역할은 setter가 한다. property 가 setter 보다 윗줄에 사용되어야 한다.