Menu
Coddy logo textTech

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 familiaris

Isso 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 familiaris

Principal 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.

challenge icon

Desafio

Fácil

Complete 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 classe Student.
  • driver.py: Arquivo de execução principal que importará e usará sua classe Student:

    Complete o código para criar uma classe Student e 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 familiaris

Crie 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 classe

Experimente 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}")
quiz iconTeste seus conhecimentos

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