创建一个由函数内部的类组成并在主体部分使用的系统

马修

我不知道哪种方法是实现我的目标的最佳方法,因此欢迎提出任何建议。

我有一个包含以下内容的python脚本:

Class1
Class2
Class3
Class4
...
+ some functions

每个类实际上都模仿系统的组成部分(数字模拟转换器,微控制器,串行外围接口等)。为了创建系统,我在主要部分中这样做:

if __name__ == '__main__':
    elt1 = Class1(param1)
    elt2 = Class1(param2)
    elt3 = Class1(param3)
    elt1 = Class2(param4)
    ...

为了创建系统,我要创建很多元素。每个新模拟都必须重新制作每个模拟,因此,如果我要对多个模拟进行预编程,则会占用相当大的空间(基本上,我每次必须复制粘贴100行代码)。

我想定义一个函数:creation of the system当前看起来像这样:

def creation_system(parameters):
    elt1 = Class1(param1)
    elt2 = Class1(param2)
    elt3 = Class1(param3)
    elt1 = Class2(param4)
    ...

现在,系统是在函数的本地存储空间中定义的,我想在主要部分中对其进行访问以执行以下操作:

if __name__ == '__main__':
    for simulation_parameter in parameters:
        creation_system(parameters)
        compute()
        save_result()

我可以想到的两种方法是返回在函数末尾创建的每个元素(我猜为元组),或者将它们定义为全局元素。我大约创建了40个变量(elts),因此没有一个非常方便。还有其他可能性吗?

谢谢 :)

Amedeo

似乎您需要创建一个System包含所有元素的新类。比您可以将参数传递给此类的构造函数。

这是一个代码示例:

class System(object):

    def __init__(self, parameters):
        self.element0 = Class0 (parameters[0])
        self.element1 = Class1 (parameters[1])
        self.element2 = Class2 (parameters[2])

    def compute(): 
        ....

    def save_result():
        ....

if __name__ == '__main__':
    parameters = ...
    mySystem = System(parameters)
    mySystem.compute()
    mySystem.save_result()

或者,您可以有一个仅包含所有系统共有元素的通用类(类似于上面的类),然后创建从先前的类继承并具有特殊行为的新类:

class SpecificSystem(System):

    def __init__(self, parameters):
        super().__init__(parameters)
        # Additional elements specific to this system
        self.element3 = Class3 (parameters[3])

    def compute():
        # Behavior specific to this system
        ....

    # Retain save_result() from superclass

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何创建一个由使用strtok函数创建的标记组成的数组?

MySQL创建一个由四部分组成的主键(由连接的条目组成)

由未咖喱的函数组成一个函数

创建一个由n个元素组成的数组

Qt创建一个类并在向量中使用

如何创建由另一个组成的结构

创建一个由单个字母组成的框架

使用熊猫在DataFrame中创建一个由列表组成的新列

使用另一个数组创建一个由 1 和 0 组成的数组

创建一个DataFrame,它由另一个的所有行对组成

模板构造函数,并在主类中创建一个对象

尝试创建一个返回二维数组的函数,并在函数内部使用 switch。收到“重复局部变量 <board>”警告

声明一个在类级别实例化的变量,并在类函数中使用

只能由另一个类创建的类,而不使用好友

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

在函数中创建数组,并在另一个函数中使用它

使用p5.js,是否可以绘制一个在其内部绘制子类的类?例如,由1x1块组成的4x4块

使用 gcc 创建一个固定大小的部分并在其中放置值

如何为一个类创建对象并在一行中使用其功能

创建一个由4个Int32元素组成的元组

如何创建一个由两个不同表组成的表

如何创建一个由20个随机字节组成的数组?

动态创建一个由N个ListItemTexts组成的ListItem

如何创建一个由1000个零采样延迟组成的信号?

是否可以创建由一定比例的另一个列表组成的列表?

从另一个类使用私有类构造函数访问内部子类

如何创建方法并在另一个类中使用它?

创建一个由子数组和子列表项组成的字典

创建一个由int和float子集组成的类型