"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo acceder a las propiedades de clase desde cadenas en Python?

¿Cómo acceder a las propiedades de clase desde cadenas en Python?

Publicado el 2025-01-20
Navegar:148

How to Access Class Properties from Strings in Python?

Acceder a las propiedades de clase desde cadenas en Python

Acceder a las propiedades de clase desde cadenas puede ser una técnica útil en varios escenarios de programación. Considere la siguiente definición de clase:

class User:
    def __init__(self):
        self.data = []
        self.other_data = []

    def doSomething(self, source):
        # Access class property based on string value

Solución:

Para acceder a una propiedad de clase dinámicamente según un valor de cadena, puede usar la función getattr(). Aquí se explica cómo:

x = getattr(self, source)

En este ejemplo, self representa la instancia de la clase Usuario y source es una cadena que contiene el nombre de la propiedad a la que desea acceder. Por ejemplo, si la fuente es 'other_data', el código recuperará la propiedad self.other_data.

Implementación:

Dentro del método doSomething(), puedes implementar el acceso a la propiedad es el siguiente:

def doSomething(self, source):
    if hasattr(self, source):
        x = getattr(self, source)

Esto verifica si la propiedad fuente existe en la clase antes de acceder a ella.

Declaración de liberación Este artículo se reproduce en: 1729643836 Si hay violaciones, comuníquese con [email protected] para eliminar
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3