Здравствуйте :) Я использую два модуля в 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):
import Files_CommonUse.folder_ModbusIndex.indexModbus as index_modbus
indexmodbus = index_modbus.ModbusDiction()
print(indexmodbus.NameB.NameB2.value)
Результат печати 76, так что это работает. Однако, пока я набирал indexmodbus. , «поле» NameA не появилось. Пока я набирал indexmodbus.NameA. , мне бы хотелось, чтобы мне показывали значение , ИмяB или Имя C, но ничего не отображалось. Интересно, стал ли этот именованный кортеж изменчивым? Кстати, я использую Eclipse.
Пожалуйста, кто-нибудь может мне помочь в этом? :) Возможно, идея именованного кортежа не работает в моих интересах, или я использую концепцию неправильно: S