Maison  >  Article  >  développement back-end  >  Comment accéder aux membres du dictionnaire à l’aide de la notation par points en Python ?

Comment accéder aux membres du dictionnaire à l’aide de la notation par points en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-16 12:06:03829parcourir

How Can You Access Dictionary Members Using Dot Notation in Python?

Accès par notation par points aux membres du dictionnaire

La manipulation des membres du dictionnaire à l'aide de l'indexation traditionnelle (par exemple, mydict['val']) peut parfois s'avérer fastidieuse. Cette question explique comment améliorer l'accessibilité du dictionnaire en activant la notation par points (par exemple, mydict.val). De plus, il recherche une solution pour accéder aux dictionnaires imbriqués de la même manière.

La clé pour obtenir l'accès à la notation par points réside dans la création d'une classe personnalisée qui hérite de la classe dict intégrée. En définissant les méthodes __getattr__, __setattr__ et __delattr__, nous pouvons intercepter les opérations d'accès, de définition et de suppression d'attributs et les rediriger vers le dictionnaire sous-jacent. Voici un exemple d'une telle classe :

class dotdict(dict):
    """dot.notation access to dictionary attributes"""
    __getattr__ = dict.get
    __setattr__ = dict.__setitem__
    __delattr__ = dict.__delitem__

Pour démontrer son utilisation, créons un exemple de dictionnaire :

mydict = {'val': 'it works'}

Maintenant, nous pouvons utiliser notre classe dotdict pour envelopper ce dictionnaire :

mydict = dotdict(mydict)

Cette transformation nous permet d'accéder aux membres du dictionnaire en utilisant la notation par points :

mydict.val
# 'it works'

De plus, nous pouvons étendre ce concept aux dictionnaires imbriqués en créant des couches supplémentaires d'instances dotdict. Par exemple, nous pourrions créer un dictionnaire imbriqué dans mydict et le rendre accessible via plusieurs niveaux de notation par points :

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

Maintenant, nous pouvons accéder à la valeur du dictionnaire profondément imbriqué en utilisant une série de points :

mydict.nested.val
# 'nested works too'

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