본문으로 건너뛰기
Minsing Log
뒤로 가기

메서드나 속성이름 앞에 _로 시작해서 비공개로 숨기기

Programming & CS

상황

def __make_corpus_passages(self, row):
	# Corpus to passages
	passage = Passage(
	id=row['_id'],
	content=row['text'],
	filepath=self.file_path,
	metadata_etc={'title': row['title']}
    )
	return passage

위의 메서드는 부모클래스인 BaseBeirEvaluator에 선언이 되어있었다. 그의 자식클래스인 BeirScifactEvaluator에서 아래 코드의 gt passage를 만드는 apply에 적용했더니

gt_passages = gt_passages.apply(self.__make_corpus_passages, axis=1).tolist()

이 메서드가 없다고 뜨는것이다.

해결

메서드나 속성 이름이 언더바 _로 시작하면 비공개 멤버로 지정한다. 때문에 이러한 메소드나 속성은 외부에서 접근할 수 없다. 같은 공간에서만 사용할 수 있는것임. 따라서 __make_corpus_passages메서드는 비공개라 찾을수 없어유~ 가 떴던것이었다.

def make_corpus_passages(self, row):
	# Corpus to passages
	passage = Passage(
	id=row['_id'],
	content=row['text'],
	filepath=self.file_path,
	metadata_etc={'title': row['title']}
    )
	return passage

메서드나 속성을 비공개로 함으로써 외부에서 이 함수안의 value들을 변질되게 하는걸 방지하는 기능으로 사용한다.

원래 make_corpus_passage를 비공개로 만들어서 변질을 불가능하게 만들려고 했었다.

공개 여정 구독

글이 올라오면 이메일로 보내드릴게요.

개발, 창업, 배움, 실패와 회고를 짧고 솔직하게 기록합니다. 검색으로 스쳐가는 독자가 아니라 여정을 따라오는 팬을 만들기 위한 뉴스레터입니다.

뉴스레터는 준비 중입니다. 그동안 RSS 로 구독하거나 이메일 로 알림을 요청해 주세요.


이 글 공유하기:

댓글

GitHub 계정으로 로그인해 댓글을 남길 수 있습니다.


이전 글
동일한 클래스 혹은 다른클래스의 method에서 static method불러오기
다음 글
상속받은 method를 각 데이터 셋에 맞춰 재정의 하는법 = method override