Introdução
Neste laboratório, você explorará classes e instâncias em Python e aprenderá como verificar se um objeto é uma instância de uma classe. Começará criando uma classe Dog com atributos de classe e de instância, em seguida, criará instâncias da classe Dog e acessará seus atributos.
Em seguida, aprenderá a usar isinstance() para verificação de tipo e compará-la com type() para correspondências exatas. Isso permitirá que você determine se um objeto pertence a uma classe específica ou a uma subclasse dessa classe, proporcionando uma compreensão mais profunda da programação orientada a objetos em Python.
Explorar Classes e Instâncias
Nesta etapa, você aprenderá sobre classes e instâncias em Python. Classes são como plantas para criar objetos, e instâncias são os objetos reais criados a partir dessas plantas. Compreender classes e instâncias é fundamental para a programação orientada a objetos em Python.
Primeiro, vamos criar uma classe simples chamada Dog.
Abra o editor VS Code no ambiente LabEx.
Crie um novo arquivo chamado
dog.pyno diretório~/project.~/project/dog.pyAdicione o seguinte código a
dog.py:## Define a class called Dog class Dog: ## Class attribute species = "Canis familiaris" ## Instance attribute def __init__(self, name, age): self.name = name self.age = ageAqui, definimos uma classe chamada
Dog.speciesé um atributo de classe, o que significa que é compartilhado por todas as instâncias da classeDog. O método__init__é um método especial chamado construtor. Ele é usado para inicializar os atributos de instâncianameeagequando um novo objetoDogé criado.Agora, vamos criar instâncias da classe
Dog. Adicione o seguinte código ao final dedog.py:## Create instances of the Dog class buddy = Dog("Buddy", 9) miles = Dog("Miles", 4) ## Access instance attributes print(f"{buddy.name} is {buddy.age} years old.") print(f"{miles.name} is {miles.age} years old.") ## Access class attribute print(f"{buddy.name} is a {buddy.species}.") print(f"{miles.name} is a {miles.species}.")Nesta parte, criamos duas instâncias da classe
Dog:buddyemiles. Em seguida, acessamos seus atributos de instância (nameeage) e o atributo de classe (species) usando a notação de ponto (.).Para executar o script
dog.py, abra um terminal no VS Code e execute o seguinte comando:python dog.pyVocê deve ver a seguinte saída:
Buddy is 9 years old. Miles is 4 years old. Buddy is a Canis familiaris. Miles is a Canis familiaris.Esta saída confirma que você criou com sucesso instâncias da classe
Doge acessou seus atributos.
Usar isinstance() para Verificação de Tipo
Nesta etapa, você aprenderá como usar a função isinstance() em Python para verificar se um objeto é uma instância de uma classe específica. Esta é uma ferramenta útil para garantir que seu código lide com diferentes tipos de objetos corretamente.
Com base na classe Dog da etapa anterior, vamos criar um novo arquivo Python para explorar isinstance().
Abra o editor VS Code no ambiente LabEx.
Crie um novo arquivo chamado
type_check.pyno diretório~/project.~/project/type_check.pyCopie a definição da classe
Dogdedog.pyparatype_check.py. Seu arquivotype_check.pyagora deve ser semelhante a este:class Dog: species = "Canis familiaris" def __init__(self, name, age): self.name = name self.age = ageAgora, vamos adicionar algum código para usar a função
isinstance(). Adicione o seguinte código ao final detype_check.py:## Create instances of the Dog class buddy = Dog("Buddy", 9) miles = Dog("Miles", 4) ## Check if buddy is an instance of the Dog class print(isinstance(buddy, Dog)) ## Check if miles is an instance of the Dog class print(isinstance(miles, Dog)) ## Check if a string is an instance of the Dog class print(isinstance("Hello", Dog))Aqui, criamos duas instâncias da classe
Dog,buddyemiles. Em seguida, usamos a funçãoisinstance()para verificar se essas instâncias são do tipoDog. Também verificamos se uma string "Hello" é uma instância da classeDog.Para executar o script
type_check.py, abra um terminal no VS Code e execute o seguinte comando:python type_check.pyVocê deve ver a seguinte saída:
True True FalseA saída mostra que
buddyemilessão de fato instâncias da classeDog, enquanto a string "Hello" não é.
Comparar com type() para Correspondências Exatas
Nesta etapa, você aprenderá como usar a função type() em Python e compará-la com isinstance() para verificação de tipo. Enquanto isinstance() verifica se um objeto é uma instância de uma classe ou suas subclasses, type() retorna o tipo exato de um objeto.
Para ilustrar a diferença, vamos criar uma subclasse da classe Dog e, em seguida, usar tanto isinstance() quanto type() para verificar o tipo de instâncias.
Abra o editor VS Code no ambiente LabEx.
Modifique o arquivo
type_check.pyno diretório~/project.~/project/type_check.pyAdicione uma nova classe chamada
GermanShepherdque herda da classeDog. Seu arquivotype_check.pyagora deve ser semelhante a este:class Dog: species = "Canis familiaris" def __init__(self, name, age): self.name = name self.age = age class GermanShepherd(Dog): def __init__(self, name, age, training_level): super().__init__(name, age) self.training_level = training_levelAqui,
GermanShepherdé uma subclasse deDog. Ela herda os atributosnameeageda classeDoge adiciona um novo atributotraining_level.Agora, vamos adicionar algum código para usar as funções
isinstance()etype(). Adicione o seguinte código ao final detype_check.py:## Create instances of the Dog and GermanShepherd classes buddy = Dog("Buddy", 9) sparky = GermanShepherd("Sparky", 3, "Advanced") ## Check types using isinstance() print(f"buddy isinstance Dog: {isinstance(buddy, Dog)}") print(f"sparky isinstance Dog: {isinstance(sparky, Dog)}") print(f"sparky isinstance GermanShepherd: {isinstance(sparky, GermanShepherd)}") ## Check types using type() print(f"type(buddy) == Dog: {type(buddy) == Dog}") print(f"type(sparky) == Dog: {type(sparky) == Dog}") print(f"type(sparky) == GermanShepherd: {type(sparky) == GermanShepherd}")Nesta parte, criamos uma instância da classe
Dog(buddy) e uma instância da classeGermanShepherd(sparky). Em seguida, usamosisinstance()etype()para verificar seus tipos.Para executar o script
type_check.py, abra um terminal no VS Code e execute o seguinte comando:python type_check.pyVocê deve ver a seguinte saída:
buddy isinstance Dog: True sparky isinstance Dog: True sparky isinstance GermanShepherd: True type(buddy) == Dog: True type(sparky) == Dog: False type(sparky) == GermanShepherd: TrueA saída mostra que
isinstance(sparky, Dog)retornaTrueporquesparkyé uma instância da classeGermanShepherd, que é uma subclasse deDog. No entanto,type(sparky) == DogretornaFalseporquetype(sparky)retorna o tipo exato, que éGermanShepherd, nãoDog.
Resumo
Neste laboratório, você explorou os fundamentos de classes e instâncias em Python. Você aprendeu como definir uma classe, incluindo atributos de classe e atributos de instância inicializados dentro do construtor __init__.
Em seguida, você criou instâncias da classe Dog, atribuindo valores aos seus atributos específicos. Finalmente, você acessou tanto os atributos de instância (nome, idade) quanto o atributo de classe (espécie) usando a notação de ponto, demonstrando como recuperar informações associadas a objetos e suas classes.



