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를 비공개로 만들어서 변질을 불가능하게 만들려고 했었다.