在组合python中

时间:2018-08-20 18:21:52

标签: python python-2.7 composition

使用合成时访问“父”对象的属性是否是错误的做法?

我有一堂课,需要根据特定的文件格式运行一个软件。目前,仅支持几种格式,以后可以添加其他格式。这样做的目的是使添加新格式变得尽可能简单和结构化。视软件而定,方法的名称应相同,但步骤不相同。

所有软件都将基于.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

0 个答案:

没有答案