Files
org-roamings/20220522151020-namedtuple.org
2022-06-04 12:57:39 +02:00

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