Classes e objetos Python. Parte 9 Curso Python do Iniciante ao Avançado em 11 posts
Publicados: 2022-01-25Este artigo ajudará o leitor a entender as classes básicas do Python juntamente com algumas aplicações básicas no mundo real. Usaremos o Visual Studio Code como nosso editor de código. Se você não instalou o Visual Studio Code, as instruções são fornecidas no primeiro blog.
Classes e objetos Python – índice:
- Aulas de 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
Aulas de 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 a programação orientada a objetos em Python. O primeiro é classe, o segundo seria um objeto, o terceiro seria a herança. Vamos começar com o que é uma classe.
Classes Python – definição
Uma classe é um blueprint 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” após o nome da classe. A sintaxe básica da função Python é ilustrada abaixo.
Por exemplo:
<img src="https://firmbee.com/wp-content/uploads/Python_9-800x600.png" alt="Python_classes" width="800" height="600" class="alignnone size-medium wp-image-21409 img-fluid" /> # Create a function # class Monkey class classname:
Nota: o nome da classe também tem as mesmas normas que a declaração da variável.
Vamos escrever nossa primeira classe Python
# first class class Animals: pass
No bloco de código acima, escrevemos uma classe que desenvolveremos mais adiante no blog. Como você pode ver, usamos a palavra-chave “class”.
Vamos ver agora, como adicionar componentes à classe do animal. Mas antes disso vamos aprender sobre o construtor “__init__()”. Construtores são usados para instanciação de objetos. Aqui o __init__() é usado para instanciação de objetos. O construtor pode ser padrão com apenas self como argumento ou parametrizado com argumentos obrigató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 será alterado mesmo se a instância for alterada.
# class variables class Animals: type=”mammals”
As variáveis de instância são as variáveis que pertencem às próprias instâncias. Portanto, eles mudarão seu valor à medida que a instância for alterada.
# class variables class Animals: def __init__(self,legs): self.legs=legs
Nota: As variáveis de instância não estão disponíveis para acesso usando o nome da classe, pois elas mudam dependendo do objeto que a acessa.
Vamos fazer um programa que tenha variáveis de classe e de instância declaradas.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs
No programa acima, usamos variáveis de instância e de classe. Então, essas variáveis formam atributos da classe.
Comportamento da classe
Conforme discutido, o comportamento da classe é definido pelos métodos dentro da classe. Mas antes de entrar na discussão sobre comportamento, temos que começar a discutir o parâmetro “self”, que usamos no __init__().
Auto:
Em um termo muito simples, sempre que anexamos algo a self, isso diz que a variável ou função pertence a essa classe. Além disso, com “self”, os atributos ou métodos da classe podem acessar.
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 Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”)
No método acima “bark”, como estamos usando a variável name, que é uma variável de instância, estamos acessando-a usando “self” e esta função imprimiria “woof woof!!!”, somente se o nome fornecido ao objeto, é cachorro.
Discutimos a maioria dos componentes de uma classe, mas você pode estar pensando em como ver se a classe está funcionando. A resposta para isso é que, a menos que criemos um objeto da classe, não poderemos 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 projeto, mas o objeto é uma instância da classe que possui valores reais.
O código para definir ou criar um objeto é ilustrado abaixo.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) dog=Animals(“dog”,4)
Para criar um objeto, a sintaxe é objectname=classname(arguments). Portanto, aqui estamos dando o nome do animal como cachorro e número de patas como 4. Agora, criado o objeto da classe, o próximo passo é usar o objeto para acessar seus atributos. Para acessar os atributos de uma classe usando o objeto, lembre-se 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 Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) dog=Animals(“dog”,4) print(dog.name) print(dog.legs)
Como podemos ver, podemos acessar variáveis de instância usando a notação de ponto.
Vamos explorar a saída.
#Output dog 4
Para acessar as funções dentro da classe ou métodos, usaremos a notação de ponto. O exemplo é ilustrado abaixo.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) dog=Animals(“dog”,4) print(dog.name) print(dog.legs) print(dog.bark())
#Output dog 4 woof woof!!!
No exemplo acima, podemos ver que estamos acessando o método da classe “bark” usando o objeto dog que criamos. Podemos ver que não estamos usando o parâmetro “self” nos argumentos da função. Isso ocorre porque não exigimos o uso de “self” fora da classe, pois o próprio objeto está agindo como self.
Herança
A herança é um processo através do qual os atributos e métodos da classe podem ser passados para uma classe filha. A classe de onde a classe filha está herdando é a classe pai. A sintaxe para herança é ilustrada abaixo.
#Inheritance class parent: class child(parent):
A partir da 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 filha. Vamos usar a classe Animals e criar uma classe filha chamada dog. Isso é ilustrado abaixo.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) class Dog(Animals): def __init__(self,name,legs,breed): Animals.__init__(self,name,legs) self.breed=breed
No código de exemplo acima, criamos uma classe dog que está estendendo a classe animals que criamos antes. Também estamos usando os parâmetros do Animals usando o Animals.__init__(arguments) que tem nome e pernas que serão herdados para a classe dog. Então estamos criando um atributo de instância para a classe dog que é a raça.
Agora vamos fazer um objeto para a classe dog e acessar os atributos e métodos da classe animals.
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) class Dog(Animals): def __init__(self,name,legs,breed): Animals.__init__(self,name,legs) self.breed=breed pug=Dog("dog",4,"pug") pug.breed pug.name pug.legs pug.bark()
#Output pug dog 4 woof woof!!!
Como podemos ver na saída, os atributos e métodos da classe pai estão sendo acessados pelo objeto da classe filho.
Neste blog, abordamos alguns conceitos básicos de classes em Python. Na próxima postagem 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.
Curso de Python do iniciante ao avançado em 11 postagens no blog:
- Curso de Introdução ao Python. Parte 1 Curso Python do Iniciante ao Avançado em 11 posts
- Variáveis e tipos de dados em Python. Parte 2 Curso Python do Iniciante ao Avançado em 11 postagens no blog
- Tuplas, listas, conjuntos e dicionários Python. Parte 3 Curso Python do Iniciante ao Avançado em 11 posts
- Conjuntos e dicionários Python. Parte 4 Curso Python do Iniciante ao Avançado em 11 posts
- Instruções condicionais em Python. Parte 5 Curso Python do Iniciante ao Avançado em 11 posts
- Loops em Python. Parte 6 Curso Python do Iniciante ao Avançado em 11 posts
- Funções do Python. Parte 7 Curso Python do Iniciante ao Avançado em 11 posts
- Funções avançadas em Python. Parte 8 Curso Python do Iniciante ao Avançado em 11 posts
- Classes e objetos Python. Parte 9 Curso Python do Iniciante ao Avançado em 11 posts
- Arquivos em Python. Parte 10 Curso Python do Iniciante ao Avançado em 11 posts
- Aplicações Python na prática. Parte 11 Curso Python do Iniciante ao Avançado em 11 posts