:PROPERTIES: :ID: 234f4590-b484-4286-9dbd-49612f4657be :mtime: 20220522171851 :ctime: 20220522151020 :END: #+title: 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/ : #+BEGIN_SRC python :results output collections.namedtuple(typename, field_names, *, rename=False, defaults=None, module=None) #+END_SRC #+BEGIN_SRC python :results output 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)) = }') #+END_SRC #+RESULTS: : p1=Point(x=10, y=20) : p1.x == p1[0] = True : p1.y == p1[1] = True : getsizeof(p1) == getsizeof((10, 20)) = True * Références * [[https://pythonsimplified.com/what-are-namedtuples-in-python/][What are the named tuples in Python - Python Simplified]] * [[https://docs.python.org/3/library/collections.html#collections.namedtuple][Namedtuple - Python collections module]]