Les tuples nommés dans Python sont une extension du type de données Tuple intégré, vous permettant de donner des noms significatifs aux éléments d'un tuple. En d'autres termes, les tuples nommés sont des tuples avec des attributs nommés. N'est-ce pas cool?
ils font partie du module des collections et fournissent un moyen de définir des classes simples et immuables de manière plus simple.
attendez quoi, classes?
Oui, classes.
Les tuples nommés sont essentiellement des classes immuables.
C'est la magie qui se produit: lorsque vous créez un tuple nommé à l'aide de NamedTuple, le résultat n'est pas une instance du tuple lui-même, mais plutôt une classe générée dynamiquement qui hérite de Tuple. Encore une fois, cool !!
Voyons comment cela fonctionne.
from collections import namedtuple P = namedtuple("Point", "x y")
Lorsque vous exécutez p = NamedTuple ("Point", "x Y"), vous créez une nouvelle classe nommée Point (comme spécifié dans le premier argument à NamedTuple).
La fonction NABLEATTUPLE utilise le type dans les coulisses pour créer dynamiquement une nouvelle classe nommée Point qui hérite de Tuple. Cette nouvelle classe est stockée dans la variable p.
et comme avec les classes, le type est type.
> type(P) class 'type'
> class A: pass > type(A) class 'type'
et quel type est l'instance d'un nom de NamedTuple?
from collections import namedtuple P = namedtuple("Point", "x y") p = P(1,2) > print(type(p)) class '__main__.Point'
p est une instance de type de type. Mais c'est aussi un tuple:
> print(isinstance(p, tuple)) True
En résumé:
et une dernière chose:
Il est très courant de nommer la variable NamedTuple (ce que nous avons appelé p) avec le même nom que le nom de type (ce que nous appelons point), la classe créée dynamiquement:
from collections import namedtuple Point = namedtuple("Point", "x y")
J'ai utilisé un nom différent pour clarifier la distinction entre deux.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3