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:
- Classes Python
- Classes Python – definição
- Inicialização de classes Python
- Vamos escrever nossa primeira classe Python
- Atributos
- Comportamento da classe
- Objetos em Python
- 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.
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.
Python Course From Beginner to Advanced in 11 blog posts:
- Tuplas, listas, conjuntos e dicionários em Python. Parte 3 do Curso de Python do Iniciante ao Avançado em 11 postagens de blog.
- Funções Python. Parte 7 Curso de Python do Iniciante ao Avançado em 11 postagens de blog
- Introdução ao Curso de Python. Parte 1 Curso de Python do Iniciante ao Avançado em 11 postagens de blog
- Variáveis e Tipos de Dados em Python. Parte 2 Curso de Python do Iniciante ao Avançado em 11 postagens de blog
- Conjuntos e dicionários em Python. Parte 4 do Curso de Python do Iniciante ao Avançado em 11 postagens de blog
- Classes e objetos em Python. Parte 9 Curso de Python do Iniciante ao Avançado em 11 postagens de blog
- Arquivos em Python. Parte 10 Curso de Python do Iniciante ao Avançado em 11 postagens de blog
- Laços em Python. Parte 6 Curso de Python do Iniciante ao Avançado em 11 postagens de blog
- Funções avançadas em Python. Parte 8 Curso de Python do Iniciante ao Avançado em 11 postagens de blog