O que caracteriza objetos de tipos diferentes? como é o caso de vingadores e atlanta onde um é um filme e o outro é uma série.
O que caracteriza objetos de tipos diferentes? como é o caso de vingadores e atlanta onde um é um filme e o outro é uma série.
Bom dia Josimar, tudo bem? Espero que sim!
O que caracteriza os objetos para serem de tipos diferentes é a classe (class dentro do Python).
Quando você cria uma classe, você está criando um 'molde' para criação de objetos daquele tipo. Essa é a ideia central do paradigma de programação Orientada a Objetos.
Portanto ao criar a classe Serie e a classe Filme, você está criando 'moldes' para criação de objetos do tipo série e do tipo filme respectivamente.
Os números inteiros no Python, por exemplo, são do tipo int, significa que existe uma classe int em que você pode instanciar objetos do tipo inteiro. Nesse caso, quando você atribui um número inteiro a uma variável, o Python cria um objeto do tipo inteiro usando a class int.
Logo, quando criamos o objeto vingadores, ele está com o molde da classe filme e o objeto Atlanta está com o molde da classe Série. Por isso são de tipos diferentes.
Vale deixar uma observação aqui:
Exemplo:
class Filme:
def __init__(self, nome, ano, duracao):
self._nome = nome.title()
self.ano = ano
self.duracao = duracao
filme1 = Filme("Vingadores", 2020, 120)
filme2 = Filme("Vingadores", 2020, 120)
print(filme1==filme2)
O código resultaria em False, mostrando que apesar de terem os mesmos atributos os objetos são diferentes, apresentando apenas o mesmo tipo. Para que esses objetos sejam iguais, você precisa usar a função __eq__ e escolher o critério para que esses objetos sejam iguais:
class Filme:
def __init__(self, nome, ano, duracao):
self.nome = nome.title()
self.ano = ano
self.duracao = duracao
def __eq__(self, outro):
if isinstance(outro, Filme):
return self.nome == outro.nome
return False
filme1 = Filme("Vingadores", 2020, 120)
filme2 = Filme("Vingadores", 2020, 120)
print(filme1==filme2)
Nesse caso, definimos na classe que os objetos do 'molde' Filme serão iguais quando o atributo nome dos dois objetos for exatamente o mesmo.
Espero que tenha tirado sua dúvida.
Estou à disposição. Bons estudos!