I can access elements of a named tuple by name as follows(*):
from collections import namedtuple
Car = namedtuple(\'Car\', \'color mileage\')
my_car = Car(\'
since python version 3.6 one could inherit from typing.NamedTuple
class HistoryItem(tp.NamedTuple):
inp: str
tsb: float
rtn: int
frequency: int = None
def __getitem__(self, item):
if isinstance(item, str):
return getattr(self, item)
return tp.NamedTuple.__getitem__(self, item)
# return super().__getitem__(item)
def get(self, item, default=None):
try:
return self[item]
except (KeyError, AttributeError):
return default
then both item[num] or item["fld_name"] will work