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
Um dos métodos mais utilizados da classe object
__str__()
Por exemplo, vamos criar uma 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(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
display_info
No entanto, há uma alternativa mais prática: podemos definir o método __str__()
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__
self.__str__()
Agora, o resultado no console será mais informativo:
Name: Tom Age: 23 Name: Tom Age: 23