본문 바로가기
Python/구조 공부하기

[Python] 4. private 멤버

by 그갸거겨 2021. 10. 26.
728x90
반응형
private 멤버변수 : 클래스 내부의 멤버 변수 중 숨기고 싶은 변수
private 멤버변수의 특징
- 클래스의 내부 변수는 일반적으로 public 속성을 갖기 때문에 외부에서 마음대로 접근하거나 변경 가능
- 하지만, private 멤버 변수는 그렇지 않음
  cf. '외부'란 main 함수 혹은 객체를 통한 접근 등을 통틀어 일컫는 말

 

식별자(예약어) : 키워드는 아니지만, private 멤버 변수로 사용하기 위해, 미리 정해진 용도로만 사용하는 문자

 식별자   정의 예시
_* 모듈(파일) 안에서 _로 시작하는 식별자를 정의하면 다른 파일에서 접근 불가 _age
__*__ 식별자의 앞뒤에 __가 붙어 있는 식별자는 시스템에서 정의한 이름 __name__
__* 클래스 안에서 외부로 노출되지 않는 식별자로 인식 __name
class BankAccount:
	__id = 0
    __name = ""
    __balance = 0
    
    def __init__(self, id, name, balance):
    	self.__id = id
        self.__name = name
        self.__balance = balance
    def deposit(self, amount):
    	self.__balance += amount
    def withdraw(self, amount):
    	self.__balance -= amount
    def __str__(self):
    	return "{0}, {1}, {2}".format(self.__id, self.__name, self.__balance)

if __name__ == "__main__":
    accountOne = BankAccount(100, "홍길동", 15000)
    accountOne.withdraw(3000)
    print(accountOne)
    print(accountOne.__balance) #private 멤버 변수이므로 에러 발생
    print(accountOne._BankAccount__Balance) # 에러 발생하지 않음
	#private 멤버 변수에 접근할 때에는 바로 윗 줄처럼 접근( 객체이름._클래스이름__멤버변수이름 )
728x90