더북(TheBook)

파이썬의 정보 은닉

파이썬은 기본적으로 정보 은닉을 지원하지 않습니다. 코드 6-21의 info_hiding.cpp 코드를 파이썬 코드로 변경해 보겠습니다.

코드 6-23 oop1/oop1_2/info_hiding_1.py

class Account:
    def _ _init__(self, name, money):
        self.user = name
        self.balance = money

    def get_balance(self):
        return self.balance

    def set_balance(self, money):
        if money < 0:
            return

        self.balance = money

if __name__ = = "__main__":
    my_acnt = Account('greg', 5000)
    my_acnt.balance = -3000   #1

    print(my_acnt.get_balance())

실행결과 -3000


my_acnt.balance = -3000과 같이 코드 6-21에서는 접근할 수 없었던 balance 멤버에 접근해 음수로 값을 바꾸었습니다(#1). 실행하면 -3000이 출력됩니다. 정보 은닉이 되지 않은 것을 알 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.