클래스 안에 private 함수를 만드는 방법을 보겠습니다.
지역 함수라고도 불리는 private 함수는 클래스 안에서만 사용하고 싶을 때 사용합니다.
파이썬에서는 전역 함수인 public과 지역 함수인 private를 설정하는 방법이 조금 다릅니다.
함수를 선언하게 되면 기본타입은 public 함수가 됩니다.
private 함수를 선언하기 위해서는 함수 이름앞에 __ 언더바(_)를 2개 붙여주면 됩니다.
전역함수 지역함수 예제
class Spam:
__attr = 100
def __init__(self):
self.__attr = 999
def method(self):
self.__method()
def __method(self):
print(self.__attr)
spam =Spam()
spam.method() #OK
spam.__method() #NG
spam.__attr #NG
spam.method()는 정상적으로 실행이 되지만 spam.__method()는 에러가 발생합니다.
클래스 Spam에 __method로 private 함수로 선언했기 때문입니다.
즉, __method 함수는 class Spam 안에서만 사용할 수 있습니다.
전역 함수인 언더바가 안붙어 있는 method는 인스턴스만 생성한다면 class 밖에서도 호출할 수 있습니다.
private 변수를 만드는 방법도 동일합니다.
변수 __attr는 지역 변수로 선언했기 때문에 class 밖에서 호출하게 되면 에러가 발생합니다.
댓글