Les tuples nommés sont des types d'objets légers et faciles à créer qui améliorent la convivialité des tuples en fournissant des attributs nommés. Examinons leur utilisation et leur comparaison avec les tuples normaux.
Pour créer des tuples nommés, nous utilisons la fonction d'usine collections.namedtuple. Par exemple, pour définir un tuple nommé pour des points :
from collections import namedtuple Point = namedtuple('Point', 'x y')
Des instances de ce tuple nommé peuvent être créées comme des tuples normaux :
pt1 = Point(1.0, 5.0) pt2 = Point(2.5, 1.5)
Les avantages de l'utilisation de tuples nommés deviennent évidents lorsque faisant référence à leurs attributs :
line_length = sqrt((pt1.x - pt2.x)**2 + (pt1.y - pt2.y)**2) # Object-like syntax
Les tuples nommés sont recommandés lorsque :
Les tuples nommés peuvent même remplacer les classes immuables par uniquement des champs. Ils peuvent également servir de classes de base pour les tuples nommés personnalisés :
class Point(namedtuple('Point', 'x y')): [...] # Define additional methods
Il n'y a pas d'équivalent intégré pour les "listes nommées" en Python. Cependant, pour les types d'enregistrements mutables, il existe des recettes ou des modules tiers qui permettent de définir de nouvelles valeurs pour les attributs :
from rcdtype import recordtype Point = recordtype('Point', 'x y') pt1 = Point(1.0, 5.0) pt1.x = 2.0 # Mutable!
Les tuples nommés peuvent être manipulés comme des dictionnaires en utilisant pt1._asdict(), offrant un accès facile à leurs champs et leur compatibilité avec les opérations du dictionnaire.
Les tuples nommés sont un outil puissant en Python, offrant un moyen propre et intuitif de représenter les données, tout en offrant une lisibilité, une vérification de type et une personnalisation améliorées. Que vous travailliez avec des types de valeurs simples ou des structures d'enregistrement complexes, les tuples nommés peuvent améliorer l'efficacité et la clarté de votre code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!