Hello :)我正在Python中使用两个模块:模块1(用于创建嵌套数据结构)和模块2(用于访问结构的“字段”,而且非常重要的是,我希望Python向我展示这些字段在我输入模块2时,因为模块1中会有很多字段。嵌套的结构是这样的:
NAME A value: 5 NAME B value: 6 NAME B2 Value:76 NAME C Index: 78
我一直在研究是否使用列表,字典,元组...到目前为止,我已经看到命名元组可能是正确的解决方案,因为它具有不变性,并且使用名称代替标识符而不是数字。我在模块1中的代码是:
from collections import namedtuple def ModbusDiction(): NameA = namedtuple('NameA', ['value','NameB','NameC']) NameB = namedtuple('NameB', ['value','NameB2']) NameB2 = namedtuple('NameB2','value') NameC = namedtuple('NameC','index') NameC_value = NameC(78) NameB2_value = NameB2(76) NameB_value = NameB(6, NameB2_value) NameA_value = NameA(5,NameB_value,NameC_value) return NameA_value
我在模块2中的代码(Files_CommonUse.folder_ModbusIndex.indexModbus是模块1的路径是:
时,未出现“字段” NameA。当我键入indexmodbus.NameA。时,我希望显示为[[value,NameB或NameC,但是什么也没显示。我不知道这个命名的元组是否变得可变。顺便说一下,我正在使用Eclipse。请,有人可以帮我吗? :)也许命名元组的想法不符合我的兴趣,或者我以错误的方式使用了这个概念:Simport Files_CommonUse.folder_ModbusIndex.indexModbus as index_modbus indexmodbus = index_modbus.ModbusDiction() print(indexmodbus.NameB.NameB2.value)
印刷品的残液为76,因此可以正常工作。但是,当我键入indexmodbus。
你好:)我正在Python中使用两个模块:模块1(用于创建嵌套的数据结构)和模块2(用于访问结构的“字段”,并且非常重要的是,我希望Python向我展示。 ..
namedtuples
更灵活。def mod_bus_diction(**kwargs):
return type('MyStructure', (), {**kwargs})
MyStructure = mod_bus_diction(
value=5,
NameB=mod_bus_diction(
value=6,
NameB2=mod_bus_diction(
value=76
)
),
NameC=mod_bus_diction(
index=78
)
)