Pular para o conteúdo

Como usar python __str__ em seus programas?

[

Neste tutorial, você aprenderá sobre o método . __str__ () em Python e como e quando usá-lo. Serão fornecidos exemplos detalhados, passo a passo, com códigos executáveis para ilustrar o uso do método.

O que é o método .str()?

O método . __str__ () é um método especial em Python que retorna uma representação em forma de string de um objeto. Quando você chama a função print() em um objeto ou usa a função str() para convertê-lo em uma string, o Python automaticamente chama o método . __str__ () do objeto para obter a representação em formato de string.

Em termos simples, o método . __str__ () permite que você controle como um objeto é exibido como uma string quando ele é impresso ou convertido explicitamente em uma string.

Exemplo de uso do método .str()

Para entender melhor como usar o método . __str__ (), vamos considerar um exemplo de uma classe Carro:

class Carro:
def __init__(self, cor, quilometragem):
self.cor = cor
self.quilometragem = quilometragem
def __str__(self):
return f"Um carro {self.cor}."

No exemplo acima, definimos a classe Carro com um construtor __init__ () que recebe a cor e a quilometragem do carro como argumentos. Em seguida, definimos o método .__str__ (), que retorna uma string representando o objeto carro.

Agora, podemos criar uma instância da classe Carro e imprimir o objeto para visualizar a representação em formato de string:

meu_carro = Carro("vermelho", 50000)
print(meu_carro)

A saída será:

Um carro vermelho.

Controlando a representação em formato de string de um objeto

Ao adicionar o método . __str__ () a uma classe, você tem controle sobre como o objeto será representado como uma string. Com isso, você pode personalizar a saída para incluir informações específicas do objeto.

Vamos expandir o exemplo anterior para incluir informações adicionais no método . __str__ ():

class Carro:
def __init__(self, cor, quilometragem):
self.cor = cor
self.quilometragem = quilometragem
def __str__(self):
return f"Um carro {self.cor} com {self.quilometragem} quilômetros rodados."

Agora, quando imprimimos a instância meu_carro, devemos obter a seguinte saída:

meu_carro = Carro("vermelho", 50000)
print(meu_carro)

A saída será:

Um carro vermelho com 50000 quilômetros rodados.

Dessa forma, ao implementar o método . __str__ (), podemos personalizar a representação em formato de string de um objeto para fornecer informações úteis e legíveis.

O uso do método .str() versus .repr()

É importante destacar a diferença entre os métodos . __str__ () e . __repr__ (). Enquanto o método . __str__ () é destinado a fornecer uma representação em formato de string que é fácil de ler para os seres humanos, o método . __repr__ () é destinado a fornecer uma representação em formato de string que é uma representação completa do objeto.

Ao imprimir um objeto ou convertê-lo em uma string, se o método . __str__ () estiver presente, o Python usará esse método para obter a representação em formato de string. Caso contrário, o Python tentará o método . __repr__ ().

No entanto, é uma boa prática implementar tanto o método . __str__ () quanto o método . __repr__ () em uma classe, para que você tenha controle total sobre a representação do objeto, tanto para visualização humana quanto para fins de depuração.

Conclusão

O método . __str__ () é um método especial em Python que permite controlar como um objeto é exibido como uma string. Ele fornece uma maneira fácil de personalizar a representação em formato de string de um objeto.

Ao implementar o método . __str__ (), você pode fornecer informações específicas do objeto e tornar a saída legível e útil. No entanto, é recomendável implementar também o método . __repr__ () como uma representação completa do objeto, para fins de depuração.

Ao entender e usar o método . __str__ (), você terá um maior controle sobre como seus objetos são representados em formato de string e poderá melhorar a legibilidade e a usabilidade do seu código Python.