Python 模拟程序的类继承顺序

Python 模拟程序的类继承顺序,python,inheritance,Python,Inheritance,这是一个关于类继承的正确顺序的基本问题。 基本上,我试图写一个数值模拟来解决一个物理模型,细节并不重要,我碰巧是用python写的,这是一个众所周知的算法,通过在大量空间上迭代来解决 我认为我需要的课程有: Setup:定义所有模拟参数(如体积大小)的类,并具有检查正确参数类型、计算派生参数等的方法。 解算器:包含解算的实际算法 输出:包含所有打印输出的句柄,并有权保存文件等。 我还需要一个运行方法,它可以运行解算器,并定期使用设置中定义的周期运行一些输出函数 在高质量程序中,哪个类将继承哪个类

这是一个关于类继承的正确顺序的基本问题。 基本上,我试图写一个数值模拟来解决一个物理模型,细节并不重要,我碰巧是用python写的,这是一个众所周知的算法,通过在大量空间上迭代来解决

我认为我需要的课程有:

Setup:定义所有模拟参数(如体积大小)的类,并具有检查正确参数类型、计算派生参数等的方法。 解算器:包含解算的实际算法 输出:包含所有打印输出的句柄,并有权保存文件等。 我还需要一个运行方法,它可以运行解算器,并定期使用设置中定义的周期运行一些输出函数

在高质量程序中,哪个类将继承哪个类?My guess输出继承自解算器继承自设置 run方法属于哪里?也许应该有一些额外的基类类接口,用户可以与之交互并包含run方法?
你是不是有Java背景

首先,您没有给出任何指示,表明您的任何类都应该从另一个类继承。因此,您可能不需要像您认为的那样多的类

解算器包含解算的实际算法

如果它只是一个函数,你最好把它作为一个自由函数

输出包含所有打印输出的句柄,并有权保存文件等

如果函数没有共享状态,那么它也很容易成为一个模块

至于run方法,只要把它放在最方便的地方就行了。Python的好处在于,您可以在不使用任何类的情况下开始原型设计,并且只要发现自己在大量传递相同的数据集,就可以重构为一个类

有一个概念鼓励使用组合而不是继承,所以我想说,如果您真的不需要继承,就不要使用它,它们可以是独立的对象或函数,在python中类似于对象

如果使用对象对此进行建模,则运行应该在解算器中。回想一下,在python中,接口的概念不像在其他语言中那样是必需的,因此您可以使用对象,也可以使用具有所需算法的函数


谢谢你,我想我读了一些文章后会写作文的。我同意锑的观点,这里并不真正需要继承。