Maison >développement back-end >Tutoriel Python >Pouvez-vous accéder aux membres du dictionnaire à l'aide de la notation par points en Python ?

Pouvez-vous accéder aux membres du dictionnaire à l'aide de la notation par points en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-15 04:03:02197parcourir

Can You Access Dictionary Members Using Dot Notation in Python?

Notation par points pour l'accès au dictionnaire : extension de la classe de dictionnaire de Python

En Python, l'accès aux membres du dictionnaire nécessite généralement la notation entre crochets, telle que mydict[ 'clé']. Cependant, il est possible d’utiliser la notation par points dans le même but, la rendant plus pratique et plus lisible. Cela peut être particulièrement utile pour accéder aux dictionnaires imbriqués.

Une façon d'y parvenir consiste à implémenter une classe personnalisée qui étend la classe dict intégrée. La classe dotdict présentée ici :

  • Redéfinit la méthode getattr pour permettre l'accès aux clés du dictionnaire en utilisant la notation par points.
  • Remplace le setattr et delattr méthodes pour faire fonctionner la notation par points pour définir et supprimer des attributs.
class dotdict(dict):
    """dot.notation access to dictionary attributes"""
    __getattr__ = dict.get
    __setattr__ = dict.__setitem__
    __delattr__ = dict.__delitem__

Pour utiliser la classe dotdict :

mydict = {'val': 'it works'}
nested_dict = {'val': 'nested works too'}
mydict = dotdict(mydict)

Maintenant, vous pouvez accéder aux membres du dictionnaire en utilisant la notation par points :

mydict.val  # 'it works'

Vous pouvez même accéder aux dictionnaires imbriqués de la même manière :

mydict.nested = dotdict(nested_dict)
mydict.nested.val  # 'nested works too'

Cette méthode offre un moyen pratique et intuitif d'interagir avec les dictionnaires, en particulier lorsqu'il s'agit de structures profondément imbriquées.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Je veux être programmeurArticle suivant:Je veux être programmeur