접근제한자(public, private, protected)
객체지향 접근제한자(Access Modifier: public, private, protected)
- public, private, protected는 정보 은닉 방식의 종류
- public : 그 속성, Method는 어느 클래스에서나 접근할 수 있음
- private : 그 속성, Method는 해당 클래스에서만 접근할 수 있음
- protected : 그 속성, Method는 해당 클래스, 해당 클래스를 상속받은 클래스에서만 접근할 수 있음
- 파이썬에서는 기본적으로 모든 속성, Method가 public임
class Weapon:
def __init__(self, weight, damage, color):
self._weight = weight
self._damage = damage
self._color = color
파이썬에서 속성 이름 앞에 ‘_‘를 붙여 표시함
단, 실제로 protected가 되는 것이 아니라 경고의 뜻으로만 사용됨
class Weapon:
def __init__(self, weight, damage, color):
self.__weight = weight
self.__damage = damage
self.__color = color
속성 이름 앞에 ‘__‘를 붙이면 실제로 private이 됨
단, 그것은 단순히 해당 이름이 _‘classname’__‘속성 또는 method이름’으로 변경되기 때문임
따라서 이 상태에서 전 포스트에서 썼던 print(heavymachinegun.damage) 등을 입력하면 에러가 발생함