Доступ к атрибутам класса взаимно в составе python
Это плохая практика для доступа к атрибутам родительского объекта при использовании композиции?
У меня есть класс, где мне нужно программное обеспечение, которое работает в зависимости от определенного формата файла. На данный момент поддерживаются только несколько форматов, а другие могут быть добавлены позже. Идея состоит в том, чтобы сделать добавление новых форматов максимально простым и структурированным. В зависимости от программного обеспечения методы должны называться одинаково, но они не выполняют одинаковые шаги.
Все части программного обеспечения будут возвращать выходные данные, основанные на параметрах, указанных в INI-файле, и действия будут выполняться один за другим с использованием разделов INI-файла в качестве классов ConfigSection
,
class ConfigSection(object):
def __init__(self,parameters,software=None):
self.parameters = parameters
self.software = software
def call_software(self,name):
self.software = get_softwate(name,self)
self.software.setup()
self.software.run()
def get_output(self):
pass
def do_actions(self):
pass
def get_software(name,section):
# Find right software
# Return subclass of Software with given parameters
class Software(object):
def __init__(self,section):
self.section = section
def setup(self):
# Get the necessary info from 'section'
def run(self):
parameters = self.section.parameters
class A(Software):
def __init__(self,section):
self.section = section
def setup(self):
parameters = self.section.parameters
# Read the necessary parameters for this software and prepare them
# to be used in run
def run(self,parameters):
# Build command using the parameters