python-3.x - 需要帮助在 Python 中创建类层次结构
问题描述
我有一个数据层次结构,我想使用类而不是硬编码来构建它。结构如下:
单元(有名称、缩写、子系统[5种不同类型的子系统])
子系统(有类型,框图(照片),ParameterModel[20组不同的parameterModels])
ParameterModel(大约 30 个参数,将具有 [参数名称、值、单位和模型索引])
我不确定如何使用类来做到这一点,但到目前为止我所做的工作是创建嵌套字典。
{'Unit':{'Unit1':{'Subsystem':{'Generator':{Parameter:{'Name': param1, 'Value':1, 'Units': 'seconds'}
像这样,但有 10-15 个单元和 5-6 个子系统,每个子系统有 30 个左右的参数。我知道使用字典不是最好的方法,但我无法弄清楚类共享结构或从哪里开始构建类结构。
我希望能够在我构建的 tkinter gui 中创建、读取、更新和删除参数,以及导出/导入这些系统参数并对它们进行计算。我可以处理计算和导入导出,但我需要创建将构建此结构并能够引用每个单独的单元/子系统/参数/值/等的类
我知道很多,但有什么建议吗?我一直在研究工厂和抽象工厂模式,希望试图弄清楚如何创建代码结构,但无济于事。我有 matlab、visual basic、c++ 和各种 arduio 项目的经验,所以我知道最基本的编程,但是如果不使用 Unit1_Generator_parameterName_parameter = ____ 这样的大名称对每个参数进行硬编码,我无法以抽象的方式弄清楚如何以抽象方式进行操作我真的不想那样做。
谢谢
编辑:这是我使用字典完成实现的一种方法,但我想使用一个可以获取列表并制作一堆空属性的类来执行此操作,并且通常可以像 setParamValue(unit, susystem, param) 其中我可以将单元传递给子系统,然后传递诸如“Td”之类的参数,然后能够更改此层次结构中的键、值对的值。
def create_keys(list):
dict = {key: None for key in list}
return dict
unit_list = ['FL','ES','NN','SF','CC','HD','ND','TH'] #unit abbreviation
sub_list = ['Gen','Gov','Exc','PSS','Rel','BlkD']
params_GENROU = ["T'do","T''do","T'qo","T''qo",'H','D','Xd','Xq',"Xd'","Xq'","X''d=X''q",'Xl','S(1.0)','S(1.2)','Ra'] #parameter names
dict = create_keys(unit_list)
for key in dict:
dict[key] = create_keys(sub_list)
dict[key]['Gen'] = create_keys(params_GENROU)
并且在每个 dict[unit][Gen][ParamNames] 里面应该有一个包含 Value、units(seconds、degrees 等)、description 和 CON 的 dict(#basically 在我们使用的另一个程序的索引中)
解决方案
推荐阅读
- rust - 烧毁 NEP-141 代币
- node.js - 如何在节点js sequelize中传递列值
- flutter - 版本解析失败,与录音机共享首选项
- javascript - 将数据从 Controller 传递到 Odoo 中的 JS
- android - 在片段中设置硬件加速为真
- perl - 有没有办法确定哪些 pragma 是活动的?
- c# - 从 WindowsForms 中的 api 下载的 JSON 问题
- python - Python any() 和 zip() 内置函数解释?
- python-3.x - 浮点值的 Pandas Dataframe 减法产生与预期不同的值
- javascript - 如何在反应中将两个不同的数据推送到数组中