Python private 함수 만들기 예제

클래스 안에 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 밖에서 호출하게 되면 에러가 발생합니다.

댓글