Classes vs Objetos
Parte da seção Object Oriented Programming do Journey de Python da Coddy — lição 3 de 64.
Classes e objetos servem a propósitos diferentes. Uma classe é um modelo, enquanto um objeto é o que você constrói a partir desse modelo.
Aqui está um exemplo de uma classe:
class Dog:
# compartilhado por todos os cães
species = "Canis familiaris"Agora podemos acessar o atributo de classe diretamente usando Dog.species onde Dog é o nome da classe:
print(f"Class species: {Dog.species}")
# Class species: Canis familiarisIsso acessa dados da própria classe, não de um objeto específico.
Agora vamos explorar como isso funciona em objetos. Crie objetos a partir da classe Dog:
dog1 = Dog()
dog2 = Dog()Objetos podem ter atributos individuais que as classes não possuem:
dog1.name = "Nicky"
dog1.breed = "Siberian Husky"
dog2.name = "Teemon"
dog2.breed = "Shu'ali"Compare o que classes e objetos podem fazer:
print(f"Object 1: {dog1.name} is a {dog1.breed}")
print(f"Object 2: {dog2.name} is a {dog2.breed}")
print(f"Both share class attribute: {Dog.species}")Saída:
Object 1: Nicky is a Siberian Husky
Object 2: Teemon is a Shu'ali
Both share class attribute: Canis familiarisPrincipal Diferença: A classe Dog define o que todos os cães têm em comum, enquanto os objetos dog1 e dog2 representam cães específicos e individuais com propriedades únicas.
Desafio
FácilComplete o código para criar uma classe Student e dois objetos de estudante. Adicione nomes e notas diferentes para cada estudante.
student.py: Este é o local onde você definirá sua classeStudent.driver.py: Arquivo de execução principal que importará e usará sua classe Student:Complete o código para criar uma classe
Studente dois objetos de estudante. Adicione nomes e notas diferentes para cada estudante.o nome do student1 é
"Alice"com a nota"A".o nome do student2 é
"Bob"com a nota"B".
Folha de consulta
Uma classe é um modelo que define atributos e comportamentos compartilhados. Um objeto é uma instância criada a partir dessa classe com propriedades individuais.
Defina uma classe:
class Dog:
# Atributo de classe - compartilhado por todas as instâncias
species = "Canis familiaris"Acesse atributos de classe diretamente:
print(Dog.species) # Canis familiarisCrie objetos a partir de uma classe:
dog1 = Dog()
dog2 = Dog()Adicione atributos individuais aos objetos:
dog1.name = "Nicky"
dog1.breed = "Siberian Husky"
dog2.name = "Teemon"
dog2.breed = "Shu'ali"Objetos podem acessar tanto seus atributos individuais quanto os atributos de classe:
print(f"{dog1.name} is a {dog1.breed}") # Atributos individuais
print(f"Species: {Dog.species}") # Atributo de classeExperimente você mesmo
# Importar a classe Student
from student import Student
# TODO: Criar dois objetos de estudante
# TODO: Adicionar atributos ao student1
# TODO: Adicionar atributos ao student2
# Imprimir informações do estudante
print(f"{student1.name} has grade {student1.grade} at {Student.school}")
print(f"{student2.name} has grade {student2.grade} at {Student.school}")Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Object Oriented Programming
1Fundamentos de POO
Arquivos ExternosIntrodução à POOClasses vs ObjetosO Parâmetro selfMétodosAtributosMétodo Construtor (__init__)Recapitulação - Calculadora Simples4Herança
Herança BásicaA Função super()Sobrescrita de MétodoHerança MúltiplaOrdem de Resolução de MétodosRecapitulação - Hierarquia de Funcionários7Métodos Especiais
Introdução aos Métodos MágicosSobrecarga de OperadoresMétodos Mágicos de ContêinerRecapitulação - Lista Personalizada10Padrões de Projeto Parte 1
Introdução a Padrões de ProjetoPadrão SingletonPadrão FactoryPadrão ObserverPadrão Strategy2Decoradores
Introdução aos DecoradoresDecorador de PropriedadeDecorador de Método EstáticoDecorador de Método de Classe5Polimorfismo
Sobrescrita de Método RevisitadaDuck TypingClasses e Métodos AbstratosDesign de InterfacesRecapitulação - Calculadora de Formas8Conceitos Avançados de POO
Composição vs HerançaMixinsMétodos Estáticos e de ClasseDecoradores de ClasseGerenciadores de Contexto11Padrões de Projeto Parte 2
Padrão CommandPadrão AdapterPadrão DecoratorPadrão Template MethodPadrão StatePadrão Composite3Propriedades de Classe
Variáveis de Instância vs de ClasseDecoradores de PropriedadeAtributos PrivadosRecapitulação - Gerenciador de Conta Bancária6Encapsulamento
Membros Públicos, Protegidos e PrivadosModificadores de AcessoOcultação de InformaçãoProperty Decorators AvançadosRecapitulação - Sistema de Registro de Alunos12Projeto: Gerenciamento de Biblioteca
Visão Geral do ProjetoClasses Livro e Usuário