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 = age
Linguagem de código: Python ( python )
A Person
classe possui três atributos de instância , incluindo first_name
, last_name
e age
.
O seguinte cria uma nova instância da Person
classe 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 Person
classe, 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 Person
classe:
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 Person
classe, Python chama o __str__
método definido na Person
classe. 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.