这是关于类继承的正确顺序的一个基本问题 基本上我正在尝试编写一个数值模拟来解决一个物理模型,细节并不重要(我碰巧在python中写这个),它是一个众所周知的算法,通过迭代一定量的空间来解决。
我认为我需要的课程是:
我还需要一个可以运行求解器的run方法,并定期(在Setup中定义句点)运行一些输出函数。
答案 0 :(得分:0)
你是否有机会来自Java背景?
首先,您没有表明您的任何课程应该从另一个课程继承。就此而言,你可能不需要像你想象的那样多的课程。
Solver#包含解决的实际算法
如果它只有一个功能,你可以把它留作免费功能。
输出#Contains所有绘图输出的句柄,并且可以访问保存文件等。
如果这些功能没有共享状态,那么它就像一个模块一样容易。
至于run方法,只需将它贴在最方便的地方。 Python的优点在于你可以在没有任何类的情况下开始原型设计,只要你发现自己经常传递相同的数据集,就可以重构为类。
答案 1 :(得分:0)
有一个概念鼓励使用组合而不是继承(http://en.wikipedia.org/wiki/Composition_over_inheritance),所以我想如果你真的不需要继承就不要使用它(它们可以是独立的对象或函数,在python中就像对象一样。)
如果使用对象对此进行建模,则run()应位于#Solver中。回想一下,与其他语言一样,python中不需要接口的概念,因此您可以使用对象或函数来使用您需要的算法。