반응형
- 비공개 속성
비공개 속성이란 클래스 바깥에서는 접근할 수 없고 클래스 안에서만 사용할 수 있는 속성입니다. 변수 앞에 밑줄 두개(__)를 붙이면 비공개 속성이 됩니다.
class Person:
def __init__(self, name, pocket):
self.name = name
self.__pocket = pocket
def give_candy(self, amount):
self.__pocket -= amount
print('사탕이 {}개 남았어요.'.format(self.__pocket))
pocket 속성 앞에 밑줄 두개를 붙여 비공개 속성으로 만들었습니다.
>>> Mary = Person('Mary', 5)
>>> Mary.name
'Mary'
>>> Mary.pocket
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
Mary.pocket
AttributeError: 'Person' object has no attribute 'pocket'
인스턴스를 생성하고 인스턴스 속성으로 접근하니 비공개 속성이 아닌 name 은 값이 출력되고 pocket은 값이 출력되지 않습니다. 이렇게 비공개 속성은 클래스 바깥에서 접근할 수 없습니다.
class Person:
def __init__(self, name, pocket):
self.name = name
self.__pocket = pocket
def give_candy(self, amount):
if amount > self.__pocket:
print('사탕이 모자라요.')
return
self.__pocket -= amount
>>> Mary = Person('Mary', 8)
>>> Mary.give_candy(10)
사탕이 모자라요.
반응형
'Python' 카테고리의 다른 글
PEP 8에 따른 Python 코딩 스타일 (0) | 2024.02.13 |
---|---|
[Python] 클래스(class) 사용하기 (0) | 2021.05.21 |
[Python] 클래스(class)와 객체(object) (0) | 2021.05.17 |
[Python] 전역변수, 지역변수, global, nonlocal (0) | 2021.05.12 |
[Python] 포매팅을 이용해 숫자 자리 개수 맞추기 (0) | 2021.05.03 |