코드 보다보면, class를 정의할 때, super(class_name, self).__init__()을 를 사용하는 경우가 있는데 이게 왜 필요할까 .. ?
class Parent:
def __init__(self, value):
self.value = value
print(f"Parent initialized with value {value}")
class Child(Parent):
def __init__(self, value, extra):
super().__init__(value) # Parent의 초기화 로직 재사용
self.extra = extra
print(f"Child initialized with extra {extra}")
c = Child(10, "extra_value")
# 출력:
# Parent initialized with value 10
# Child initialized with extra extra_value
class TextForgetDatasetQA(Dataset):
def __init__(self, data_path, tokenizer, model_family, max_length=512, split='forget10', loss_type="idk"):
super(TextForgetDatasetQA, self).__init__()