如果我想定义一个由另一个类的实例组成的类,我应该如何组织我的代码?

时间:2015-10-17 20:44:41

标签: python class oop organization

我无法决定如何组织代码。我正在为电力系统建立模拟,并希望定义一个名为“Plant”的类,其中包含“Transformer”和“Switch”对象。 我不知道将这些对象私有化为Plant类是否是一个好主意。 另外,我不确定如何在“植物”对象中组织这些对象;我应该只列出这个工厂包含的变压器列表,还是有更好的方法来组织我的数据?

基本上,我正在寻找关于如何组织由其他课程组成的课程的建议,或者在决定这一课程时我应该考虑的内容。

哦,顺便说一句,我正在使用python。

2 个答案:

答案 0 :(得分:0)

听起来您需要更详细地考虑每个对象的用例。您希望如何访问这些对象中的每一个,以及希望进行哪些类型的操作?这将使您更好地了解如何构建代码。至于将属性设为私有,这可能并不重要。

答案 1 :(得分:-1)

这些方面的东西应该适合你

class Transformer():
    def __init__(self, name):
        self.name = name
        //initfunctions

    def other_function(self):

    //more fns

class Switch():
    def __init__(self):
        //initfunctions

    def other_function(self):

    //more fns

class Plant():
    def __init__(self):
        self.transformers = []
        self.switches = []

    def add_transformer(self, transformer):
        self.transformers.append(transformer)

    def create_transformer(self, name):
        self.transformers.append(Transformer(name))

    def print_transformers(self):
        for trans in self.transformers:
            print trans.name

然后您可以在主代码中使用它,如:

plant = Plant()
trans1 = Transformer('trans1')
plant.add_transformer(trans1)
plant.print_transformers()

然后输出

trans1