접근 제어자

codakcodak·2023년 10월 3일
0

OOP python

목록 보기
2/19
post-custom-banner

코드

class Cal:
    # 생성자:메모리에 올라오는 순간 즉시 싱행
    def __init__(self, a, b):
        self.__a = a
        self.__b = b

    def getA(self):
        return self.__a

    def setA(self, a):
        self.__a = a

    def getB(self):
        return self.__b

    def setB(self, b):
        self.__b = b

    def sum(self):
        return self.__a + self.__b

    def sub(self):
        return self.__a - self.__b

    def mul(self):
        return self.__a * self.__b

    def div(self):
        return self.__a / self.__b


cal1 = Cal(1, 2)
#print(cal1.__a)
#AttributeError: 'Cal' object has no attribute '__a'
print(cal1.__dict__["_Cal__a"])
  • 인스턴스 변수가 _(private)형태로 정의된다면 외부에서 인스턴스.var로 접근할수 없다(has no attribute error)
  • 인스턴스의 dict변수를 통해서는 접근이 가능하다(완벽한 접근 제어는 못한다.)
profile
숲을 보는 코더
post-custom-banner

0개의 댓글