Python__str__

Resumo : neste tutorial, você aprenderá como usar o __str__método Python para fazer uma representação em string de uma classe.

Introdução ao __str__método Python

Vamos começar com a Person aula :

class Person:
    def __init__(self, first_name, last_name, age):
        self.first_name = first_name
        self.last_name = last_name
        self.age = ageLinguagem de código:  Python  ( python )

A Personclasse possui três atributos de instância , incluindo first_name, last_namee age.

O seguinte cria uma nova instância da Personclasse e a exibe:

person = Person('John', 'Doe', 25)
print(person)Linguagem de código:  Python  ( python )

Saída:

<__main__.Person object at 0x0000023CA16D13A0>Linguagem de código:  Python  ( python )

Quando você usa a print()função para exibir a instância da Personclasse, a print()função mostra o endereço de memória dessa instância.

Às vezes, é útil ter uma representação em string de uma instância de uma classe. Para personalizar a representação de string de uma instância de classe, a classe precisa implementar o __str__método mágico.

Internamente, o Python chamará o __str__método automaticamente quando uma instância chamar o str()método.

Observe que a print()função converte todos os argumentos que não sejam palavras-chave em strings, passando-os para str()antes de exibir os valores da string.

O seguinte ilustra como implementar o __str__método na Personclasse:

class Person:
    def __init__(self, first_name, last_name, age):
        self.first_name = first_name
        self.last_name = last_name
        self.age = age

    def __str__(self):
        return f'Person({self.first_name},{self.last_name},{self.age})'Linguagem de código:  Python  ( python )

E quando você usa a print()função para imprimir uma instância da Personclasse, Python chama o __str__método definido na Personclasse. Por exemplo:

person = Person('John', 'Doe', 25)
print(person)Linguagem de código:  Python  ( python )

Saída:

Person(John,Doe,25)Linguagem de código:  Python  ( python )

Resumo

  • Implemente o __str__método para personalizar a representação de string de uma instância de uma classe.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *