Maison  >  Article  >  développement back-end  >  Comment accéder dynamiquement à la propriété de classe à l’aide d’une chaîne en Python ?

Comment accéder dynamiquement à la propriété de classe à l’aide d’une chaîne en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-23 08:40:29117parcourir

How to Access Class Property Dynamically Using String in Python?

Accès à la propriété de classe à partir d'une chaîne en Python

Lorsque vous travaillez avec Python, vous pouvez rencontrer des situations dans lesquelles vous devez accéder dynamiquement à une propriété de classe basée sur une chaîne. Un de ces cas d'utilisation consiste à accéder à différents membres de classe en fonction d'une valeur de chaîne fournie par l'utilisateur.

Dans de tels scénarios, vous pouvez utiliser la fonction getattr. Prenons l'exemple de la classe suivante :

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

    def doSomething(self, source):
        # if source = 'other_data' how to access self.other_data</code>

Dans la méthode doSomething, vous pouvez accéder dynamiquement à la propriété de classe en utilisant getattr :

<code class="python">x = getattr(self, source)</code>

Dans ce cas, x se verra attribuer le valeur de la propriété de classe other_data si source est égale à « other_data ». En effet, getattr prend un objet et une chaîne qui représente le nom de la propriété et renvoie la valeur de la propriété.

L'utilisation de getattr fournit un moyen pratique et dynamique d'accéder aux propriétés de classe basées sur une chaîne. Cela vous permet d'éviter d'utiliser des noms de propriétés codés en dur, ce qui rend votre code plus flexible et réutilisable.

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