Maison > développement back-end > Tutoriel Python > 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
Libérer: 2024-11-16 12:06:03
original
951 Les gens l'ont consulté

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__
Copier après la connexion

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

mydict = {'val': 'it works'}
Copier après la connexion

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

mydict = dotdict(mydict)
Copier après la connexion

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

mydict.val
# 'it works'
Copier après la connexion

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)
Copier après la connexion

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'
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal