Atualizado: 04/11/2024

Superclasse object - Python

A partir da versão 3 da linguagem de programação Python, todos os classes possuem implicitamente um superclasse comum, o object, herdando seus métodos por padrão.

Um dos métodos mais utilizados da classe object é o método __str__(). Quando é necessário obter uma representação em string de um objeto ou exibir o objeto como uma string, Python chama automaticamente este método. Assim, é uma boa prática sobrescrever este método ao definir uma nova classe.

Por exemplo, vamos criar uma classe Person e exibir sua representação em string:

class Person:
    def __init__(self, name, age):
        self.name = name  # define o nome
        self.age = age  # define a idade

    def display_info(self):
        print(f"Name: {self.name}  Age: {self.age}")

tom = Person("Tom", 23)
print(tom)

Ao executar o programa, o resultado será algo como:

<__main__.Person object at 0x7f8b1c1b3b50>

Essa saída não é muito informativa sobre o objeto. Podemos, claro, contornar isso definindo um método adicional na classe Person para exibir os dados do objeto: no exemplo acima, este é o método display_info.

No entanto, há uma alternativa mais prática: podemos definir o método __str__() diretamente na classe Person:

class Person:
def __init__(self, name, age):
    self.name = name  # define o nome
    self.age = age  # define a idade

def display_info(self):
    print(self)
    # print(self.__str__())     # ou desta forma

def __str__(self):
    return f"Name: {self.name}  Age: {self.age}"

tom = Person("Tom", 23)
print(tom)      # Saída: Name: Tom  Age: 23
tom.display_info()  # Saída: Name: Tom  Age: 23

O método __str__ deve retornar uma string. Neste caso, estamos retornando informações básicas sobre a pessoa. Se precisarmos usar essa informação em outros métodos da classe, podemos usar a expressão self.__str__().

Agora, o resultado no console será mais informativo:

Name: Tom  Age: 23
Name: Tom  Age: 23
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com