Este artigo ajudará o leitor a entender as classes básicas de Python, juntamente com algumas aplicações básicas no mundo real. Usaremos o Visual Studio Code como nosso editor de código. Se você ainda não instalou o Visual Studio Code, as instruções estão disponíveis no primeiro blog.

Classes e objetos Python – índice:

  1. Classes Python
  2. Classes Python – definição
  3. Inicialização de classes Python
  4. Vamos escrever nossa primeira classe Python
  5. Atributos
  6. Comportamento da classe
  7. Objetos em Python
  8. Herança

Classes Python

Como discutimos no primeiro blog, Python é uma linguagem de programação orientada a objetos. Existem três frases que são muito importantes ao discutir programação orientada a objetos em Python. A primeira é classe, a segunda é um objeto, a terceira seria a herança. Vamos começar com o que é uma classe.

Classes Python – definição

Uma classe é um modelo ou um programa extensível que ajuda na criação de objetos. Uma classe consiste em comportamento e estado. O comportamento de uma classe é demonstrado através de funções dentro da classe, que são chamadas de métodos. O estado da classe é demonstrado usando as variáveis dentro da classe, que são chamadas de atributos.

Inicialização de classes Python

Uma classe pode ser inicializada usando a seguinte sintaxe.

Uma classe em Python é definida usando a palavra-chave “class” seguida do nome da classe. A sintaxe básica de uma função Python é ilustrada abaixo.

Por exemplo:

<img src="https://firmbee.com/wp-content/uploads/Python_9-800x600.png" alt="Classes_Python" width="800" height="600" class="alignnone size-medium wp-image-21409 img-fluid" />
# Criar uma função
# classe Macaco
class classname:

Nota: o nome da classe também segue as mesmas normas que a declaração de variáveis.

Vamos escrever nossa primeira classe Python

# primeira classe

class Animais:
	pass

No bloco de código acima, escrevemos uma classe que iremos desenvolver mais adiante no blog. Como você pode ver, usamos a palavra-chave “class”.

Agora vamos ver como adicionar componentes à classe dos animais. Mas antes disso, vamos aprender sobre o construtor “__init__()”. Construtores são usados para a instanciação de objetos. Aqui, o __init__() é usado para a instanciação de objetos. O construtor pode ser padrão, com apenas self como argumento, ou parametrizado com os argumentos necessários.

Atributos

Existem dois tipos diferentes de atributos, os primeiros são variáveis de classe e os segundos são variáveis de instância. As variáveis de classe são as variáveis que pertencem à classe. Além disso, essas variáveis estão disponíveis para todas as instâncias da classe. Portanto, seu valor não mudará mesmo que a instância mude.

# variáveis de classe

class Animais:
	tipo=”mamíferos”

As variáveis de instância são as variáveis que pertencem às próprias instâncias. Portanto, elas mudarão seu valor à medida que a instância mudar.

# variáveis de classe

class Animais:
	def __init__(self, pernas):
		self.pernas = pernas
		

Nota: As variáveis de instância não estão disponíveis para acesso usando o nome da classe, porque elas mudam dependendo do objeto que as acessa.

Vamos fazer um programa que tenha tanto variáveis de classe quanto variáveis de instância declaradas.

class Animais:
	tipo=”mamíferos”
	def __init__(self, nome, pernas):
		self.nome = nome
		self.pernas = pernas
	

No programa acima, usamos tanto variáveis de instância quanto variáveis de classe. Portanto, essas variáveis formam atributos da classe.

Comportamento da classe

Como discutido, o comportamento da classe é definido pelos métodos dentro da classe. Mas antes de entrar na discussão sobre comportamento, precisamos começar a discutir o parâmetro “self”, que usamos no __init__().

Self:

De maneira muito simples, sempre que anexamos algo a self, isso indica que a variável ou função pertence àquela classe. Além disso, com “self”, os atributos ou métodos da classe podem ser acessados.

Métodos:

Métodos de classe são funções dentro da classe que terão seu primeiro argumento como “self”. Um método dentro da classe é definido usando a palavra-chave “def”.

class Animais:
	tipo=”mamíferos”
	def __init__(self, nome, pernas):
		self.nome = nome
		self.pernas = pernas
	def latir(self):
		if self.nome == ”cachorro”:
			print(“au au!!!”)
		else:
			print(“não é um cachorro”)
 

No método “latir” acima, como estamos usando a variável nome, que é uma variável de instância, estamos acessando-a usando “self” e essa função imprimiria “au au!!!”, apenas se o nome fornecido ao objeto for cachorro.

Discutimos a maioria dos componentes de uma classe, mas você pode estar se perguntando como ver se a classe está funcionando. A resposta para isso é que, a menos que criemos um objeto da classe, não seremos capazes de ver o que a classe está fazendo. Agora, vamos definir e criar um objeto da classe.

Objetos em Python

Um objeto é uma instância da classe. Uma classe é apenas um modelo, mas o objeto é uma instância da classe que possui valores reais.

O código para definir ou criar um objeto é ilustrado abaixo.

class Animais:
	tipo=”mamíferos”
	def __init__(self, nome, pernas):
		self.nome = nome
		self.pernas = pernas
	def latir(self):
		if self.nome == ”cachorro”:
			print(“au au!!!”)
		else:
			print(“não é um cachorro”)
 
cachorro = Animais(“cachorro”, 4)
 

Para criar um objeto, a sintaxe é objectname=classname(arguments). Portanto, aqui estamos dando o nome do animal como cachorro e o número de pernas como 4. Agora, o objeto da classe foi criado, o próximo passo é usar o objeto para acessar seus atributos. Para acessar os atributos de uma classe usando o objeto, lembre-se de que apenas as variáveis de instância podem ser acessadas usando o objeto. As variáveis de instância em nossa classe são nome e pernas.

class Animais:
	tipo=”mamíferos”
	def __init__(self, nome, pernas):
		self.nome = nome
		self.pernas = pernas
	def latir(self):
		if self.nome == ”cachorro”:
			print(“au au!!!”)
		else:
			print(“não é um cachorro”)
 
cachorro = Animais(“cachorro”, 4)
print(cachorro.nome)
print(cachorro.pernas)
 

Como podemos ver, conseguimos acessar as variáveis de instância usando a notação de ponto.

Vamos explorar a saída.

#Saída

cachorro
4

Para acessar as funções dentro da classe ou métodos, usaremos a notação de ponto. O exemplo é ilustrado abaixo.

class Animais:
	tipo=”mamíferos”
	def __init__(self, nome, pernas):
		self.nome = nome
		self.pernas = pernas
	def latir(self):
		if self.nome == ”cachorro”:
			print(“au au!!!”)
		else:
			print(“não é um cachorro”)
 
cachorro = Animais(“cachorro”, 4)
print(cachorro.nome)
print(cachorro.pernas)
print(cachorro.latir())
#Saída

cachorro
4
au au!!!

No exemplo acima, podemos ver que estamos acessando o método da classe “latir” usando o objeto cachorro que criamos. Podemos ver que não estamos usando o parâmetro “self” nos argumentos da função. Isso ocorre porque não precisamos usar “self” fora da classe, já que o objeto em si está agindo como self.

Herança

Herança é um processo pelo qual os atributos e métodos da classe podem ser passados para uma classe filha. A classe da qual a classe filha está herdando é a classe pai. A sintaxe para herança é ilustrada abaixo.

#Herança

class pai:

class filho(pai):

Na ilustração acima, podemos ver que para a sintaxe de herança estamos colocando o nome da classe pai como um argumento para a classe filho. Vamos usar a classe Animais e fazer uma classe filha chamada cachorro. Isso é ilustrado abaixo.

class Animais:
	tipo=”mamíferos”
	def __init__(self, nome, pernas):
		self.nome = nome
		self.pernas = pernas
	def latir(self):
		if self.nome == ”cachorro”:
			print(“au au!!!”)
		else:
			print(“não é um cachorro”)

class Cachorro(Animais):
	def __init__(self, nome, pernas, raça):
		Animais.__init__(self, nome, pernas)
		self.raça = raça

No código de exemplo acima, criamos uma classe cachorro que está estendendo a classe animais que criamos anteriormente. Também estamos usando os parâmetros da classe Animais usando Animais.__init__(arguments), que possui nome e pernas que serão herdados pela classe cachorro. Em seguida, estamos criando um atributo de instância para a classe cachorro, que é raça.

Agora vamos criar um objeto para a classe cachorro e acessar os atributos e métodos da classe animais.

class Animais:
	tipo=”mamíferos”
	def __init__(self, nome, pernas):
		self.nome = nome
		self.pernas = pernas
	def latir(self):
		if self.nome == ”cachorro”:
			print(“au au!!!”)
		else:
			print(“não é um cachorro”)

class Cachorro(Animais):
	def __init__(self, nome, pernas, raça):
		Animais.__init__(self, nome, pernas)
		self.raça = raça

pug = Cachorro("cachorro", 4, "pug")
pug.raça
pug.nome
pug.pernas
pug.latir()
#Saída

pug
cachorro
4
au au!!!

Como podemos ver na saída, os atributos e métodos da classe pai estão sendo acessados pelo objeto da classe filha.

Neste blog, cobrimos alguns conceitos básicos de classes em Python. No próximo post do blog, abordaremos o tópico de manipulação de arquivos.

classes_python

Você também pode gostar do nosso Curso de JavaScript do Iniciante ao Avançado.

Robert Whitney

Especialista em JavaScript e instrutor que orienta departamentos de TI. Seu principal objetivo é aumentar a produtividade da equipe, ensinando os outros a cooperar efetivamente enquanto codificam.

View all posts →