가이드라인

클래스 프라이빗(Private) 변수 사용법

프라이빗 변수(Private Variables)는 클래스 내부에서만 접근할 수 있는 특별한 변수입니다.

이 변수는 객체의 중요한 데이터를 외부에서 직접 바꾸지 못하도록 보호하며, 앞서 배운 캡슐화를 구현하는 데 사용됩니다.

파이썬에서는 변수 이름 앞에 밑줄 2개(__)를 붙여 프라이빗 변수를 나타냅니다.

참고: 밑줄을 1개만 붙인 변수는 보호 변수(Protected Variables)로, 해당 클래스와 하위 클래스에서만 접근할 수 있도록 설계된 변수입니다. 프라이빗 변수와 달리 외부에서 접근이 가능하지만 이러한 방식은 권장되지 않습니다.


프라이빗 변수 사용 예시
class MyClass: def __init__(self): # 프라이빗 변수 self.__private_var = 10 # 프라이빗 변수 값을 반환하는 메서드 def get_private_var(self): return self.__private_var obj = MyClass() print(obj.get_private_var()) # 10 출력 # print(obj.__private_var) # AttributeError 발생: 직접 접근 불가

위 코드에서 __private_varMyClass 클래스의 프라이빗 변수입니다.

클래스 외부에서 obj.__private_var()와 같이 __private_var에 직접 접근하려고 하면 AttributeError가 발생합니다.

이와 같이 프라이빗 변수는 변수를 클래스 내부 및 메서드로만 접근할 수 있도록 제한하여, 객체의 정보를 안전하게 보호합니다.


프라이빗 변수의 특징

프라이빗 변수는 다음과 같은 특징을 갖습니다.

  • 데이터 보호: 클래스 내부에서만 변수에 접근할 수 있으므로, 외부에서 데이터를 잘못 수정하거나 읽는 것을 막아줍니다.

  • 사용하기 편리한 메서드 제공: 변수를 안전하게 다루기 위해 클래스에서 미리 만들어둔 메서드만 사용하도록 합니다.

프라이빗 변수 사용 예시
class Account: def __init__(self, balance): # 프라이빗 변수 self.__balance = balance def deposit(self, amount): if amount > 0: self.__balance += amount return f"입금 완료: 잔액 {self.__balance}원" return "입금 금액이 유효하지 않습니다." def get_balance(self): return f"현재 잔액: {self.__balance}원" # 클래스 사용 예시 account = Account(10000) print(account.deposit(5000)) # '입금 완료: 잔액 15000원' 출력 print(account.get_balance()) # '현재 잔액: 15000원' 출력 # 프라이빗 변수 직접 접근 시도 (오류 발생) # print(account.__balance) # AttributeError 발생

이 예제에서 __balanceAccount 클래스의 프라이빗 변수입니다.

클래스 외부에서 __balance에 직접 접근하려 하면 AttributeError 오류가 발생합니다.

대신 클래스에서 제공하는 depositget_balance 메서드를 통해 이 변수의 값을 안전하게 바꾸거나 확인할 수 있습니다.

Mission
0 / 1

프라이빗(Private) 변수는 클래스 외부에서 직접 접근할 수 있다.

O
X

가이드라인

AI 튜터

배포

디자인

업로드

수업 노트

즐겨찾기

도움말

코드 에디터

코드 실행
코드 생성

실행 결과