1.4 KiB
1.4 KiB
NamedTuple
Introduction
Les tuples sont des objets immutables contenant des données mutable ou non, homogènes ou non. Le contenu d'un tuple est accessible depuis son index (cf. tableau). Le namedtuple est un tuple pour lequel le contenu est aussi accessible depuis un nom, rendant le code plus lisible.
Les namedtuple prennent la même quantité de RAM que les tuple.
Howto
Le module collections propose une implémentation de namedtuple :
collections.namedtuple(typename, field_names, *, rename=False, defaults=None, module=None)
from collections import namedtuple
from sys import getsizeof
Point = namedtuple('Point', ['x', 'y'])
p1 = Point(10, 20)
print(f'{p1=}')
print(f'{p1.x == p1[0] = }')
print(f'{p1.y == p1[1] = }')
print(f'{getsizeof(p1) == getsizeof((10, 20)) = }')
p1=Point(x=10, y=20) p1.x == p1[0] = True p1.y == p1[1] = True getsizeof(p1) == getsizeof((10, 20)) = True