"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como acessar propriedades de classe de strings em Python?

Como acessar propriedades de classe de strings em Python?

Publicado em 2025-01-20
Navegar:810

How to Access Class Properties from Strings in Python?

Acessando propriedades de classe a partir de strings em Python

Acessar propriedades de classe a partir de strings pode ser uma técnica útil em vários cenários de programação. Considere a seguinte definição de classe:

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

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

Solução:

Para acessar uma propriedade de classe dinamicamente com base em um valor de string, você pode usar a função getattr(). Veja como:

x = getattr(self, source)

Neste exemplo, self representa a instância da classe User, e source é uma string que contém o nome do propriedade que você deseja acessar. Por exemplo, se source for 'other_data', o código recuperará a propriedade self.other_data.

Implementação:

Dentro do método doSomething(), você pode implementar o acesso à propriedade da seguinte forma:

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

Isso verifica se a propriedade source existe na classe antes de acessá-la.

Declaração de lançamento Este artigo foi reimpresso em: 1729643836 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3