[Python] 파이썬의 접근제어자(public, private) 와 접근자(get)와 생성자(set)
접근제어자 : 접근의 범위를 설정
공개/비공개 속성
public : 클래스 안,밖 모두 접근 기능
__변수명__, 변수명
__메서드명__, 메서드명
private : 클래스 내부에서만 접근 가능
__변수명, __메서드
private 객체를 생성할 때 초기화는 가능하다.
접근자와 생성자 : private 접근이 불가능하기 때문에 별도의 메서드가 필요하다. 접근자는 (getter), 생성자는 (setter) 라고 부른다. 접근자(getter)는 인스턴스의 값을 반환한다는 의미
생성자(setter)는 인스턴스의 값을 변경한다는 의미
protected : 해당 클래스와 그 하위(자식클래스)에 접근이 가능하다. 자식클래스의 객체를 생성한다.
_변수명
#security.py
#id, pw 저장
class Id:
def __init__(self,id1,pw):
self.__pw = pw #private : 정보 은닉
self.id1 = id1
def info(self):
print(self.__pw)
print(self.id1)
def get(self): #getter
return self.__pw
def set(self,p): #setter
self.__pw = p
#main()
A = Id('ID',1234)
#main직접 호출시 접근이 불가능하다.
#print(A.pw) #Error 발생, 클래스 밖에서는 접근이 불가능하기 때문이다. (AttributeError)
A.info()
A.set(1111) #set 메서드를 통해 변경
print(A.get()) #get 메서드를 통해 변경된 값 반환
#security_2.py
class Acc:
def __init__(self):
publicVar = "public"
__privateVar = "Not_public"
self.__money = 100000
def __privateMethod(self):
print("Not_public_Method")
A = Acc()
A.__privateMethod()
try:
print(Acc.publicVar)
print(Acc.__privateVar)
except AttributeError:
print('Not Access')
댓글
댓글 쓰기