Python-비공개 속성

강현구·2021년 11월 27일
0

Python

목록 보기
8/21

비공개 속성(private attribute)

클래스의 바깥에서 접근할 수 없고 클래스 안에서만 사용할 수 있다.

class Person:
    def __init__(self, name, age, address, wallet):
        self.name = name
        self.age = age
        self.address = address
        self.__wallet = wallet

위와 같은 클래스가 있을 때 name, age, address는 클래스의 바깥에서 접근할 수 있는 공개 속성이지만 __wallet은 클래스 바깥에서 접근할 경우 에러가 발생한다.
이렇게 밑줄 두개 __ 를 붙인 속성을 비공개 속성이라고한다.
이는 클래스 바깥에서 제어하지 않고 클래스 내에서 메서드에 의해서만 변경할 수 있다.

비공개 메서드

속성뿐만 아니라 메서드도 __로 시작하는 비공개 메서드를 만들 수 있다.

class Person:
    def __greeting(self):
        print('Hello')
 
    def hello(self):
        self.__greeting()
 
james = Person()
james.__greeting()

클래스 안에서는 비공개 메서드를 호출할 수 있으나, 밖에서는 호출할 수 없다.

profile
한걸음씩

0개의 댓글