【发布时间】:2019-09-01 19:25:43
【问题描述】:
我有一个有很多方法的对象。这些方法可以分组或聚类。组是例如'model1', 'model2',..., 有calc_density,calc_temperature, get_temperature,...等方法
另一组“修改”将收集所有方法来修改对象(一个字典)的数据。
现在我将所有方法都放在一个文件中,将来会增加(大约 50-200 个方法)。我“解决”了将组名添加到方法名的问题,我认为这不太好。
my_object.model1CalcDensity
my_object.model2CalcTemperature
my_object.modifyApplyLimits
理想情况下,我希望有这样的结构
my_object.model1.CalcDensity
my_object.model2.CalcTemperature
my_object.modify.ApplyLimits
组的方法应该在每个组的单独文件中。我知道,我将如何使用模块中的简单函数来做到这一点,但我不确定这如何与对象的方法一起使用。 (但不得不承认我的Python知识非常有限)有没有“标准”的解决方案?
【问题讨论】:
-
你不能为每个“组”功能定义一个单独的类,并给出作为这些类对象的“主类”属性。这将允许您以您所说的“理想情况下”的方式访问这些方法。
-
我认为我对 OOP 不够熟悉,无法完全理解您的建议,因为我来自 FORTRAN 的 CFD 建模。该对象现在保存像成分这样的数据,并且方法将属性(密度,温度,..)添加到每个组的此数据集或修改成分。这符合你的想法吗?我在哪里可以找到适合您的场景的示例?
-
您能否详细说明“修改”组?不清楚您所说的“收集所有方法来修改对象的数据(一个字典)”是什么意思。
-
@baudri 作为 OO 设计的捷径,将作用于相同数据的方法与数据组合在一起。我忘了是谁说的,但可以将对象视为数据和对其进行操作的方法的私有范围。
-
...顺便说一句,欢迎来到 SO!
标签: python oop object methods architecture