Я хочу получить доступ к родительским атрибутам из дочернего класса без необходимости постоянно повторять super().__init__
аргументы
Я пробовал без супер, я пробовал super().attribute
, я пытался установить значение по умолчанию в родительском классе или дочернем классе
Допустим, у меня следующая ситуация:
class GM2_setup_to_convert:
#Class to define which file to convert
def __init__(self, file_name, path_to_folder):
self.file_name = file_name
self.path_to_folder = path_to_folder
self.file_to_convert = self.path_to_folder + self.file_name
Тогда у меня есть несколько дочерних классов, таких как:
class Hardware_sheet(GM2_setup_to_convert):
#Class to define hardware_sheet of file to convert
def __init__(self, file_name, path_to_folder):
super().__init__(file_name, path_to_folder)
self.spec_excl_file_hardware = pd.read_excel(self.file_to_convert, sheet_name=' Hardware ', header=None)
class Expressions_cal(GM2_setup_to_convert):
def __init__(self,file_name, path_to_folder):
super().__init__(file_name, path_to_folder)
self.spec_excl_file_cal_expr = pd.read_excel(self.file_to_convert, sheet_name=' Expression Calculation ', header=None, skiprows=[0, 1])
и так далее. Теперь, если я хочу создать экземпляр экземпляра дочерних классов, есть ли способ избежать необходимости записывать аргументы super (). init (file_name, path_to_folder) (см. Ниже) для каждого экземпляра?
expr = Expressions_cal(file_name, path_to_folder)
например. как:
class GM2_setup_to_convert:
#Class to define which file to convert
def __init__(self, file_name=default, path_to_folder=default):
self.file_name = file_name
self.path_to_folder = path_to_folder
self.file_to_convert = self.path_to_folder + self.file_name
или
class Expressions_cal(GM2_setup_to_convert):
def __init__(self,file_name=default, path_to_folder=default):
super().__init__(file_name, path_to_folder)
self.spec_excl_file_cal_expr = pd.read_excel(self.file_to_convert, sheet_name=' Expression Calculation ', header=None, skiprows=[0, 1])