Maison > développement back-end > Tutoriel Python > Comment accéder dynamiquement aux propriétés de classe à partir d'une entrée de chaîne en Python ?

Comment accéder dynamiquement aux propriétés de classe à partir d'une entrée de chaîne en Python ?

Linda Hamilton
Libérer: 2024-10-23 08:42:02
original
702 Les gens l'ont consulté

How to Access Class Properties Dynamically from String Input in Python?

Python : accès aux propriétés de classe à partir de chaînes

En Python, vous pouvez rencontrer des situations dans lesquelles vous devez accéder aux propriétés de classe à l'aide de chaînes. Par exemple, vous pouvez avoir une classe comme celle-ci :

<code class="python">class User:
    def __init__(self):
        self.data = []
        self.other_data = []

    def doSomething(self, source):
        # How to access self.other_data if source = 'other_data'?</code>
Copier après la connexion

Vous souhaitez transmettre une valeur de chaîne pour le paramètre source dans doSomething et accéder au membre de la classe portant le même nom.

Solution :

La solution idéale à ce problème est d'utiliser la fonction getattr :

<code class="python">x = getattr(self, source)</code>
Copier après la connexion

getattr prend deux arguments : l'objet dont vous souhaitez accéder à la propriété et le nom de la propriété sous forme de chaîne. Dans votre cas, vous utiliseriez self comme premier argument et source comme second.

Cette approche fonctionnera de manière transparente quel que soit l'attribut de self référencé par la chaîne source, y compris other_data dans votre exemple.

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
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