Em uma linguagem orientada a objetos, uma classe é uma parte extensível de código que representa um modelo para criar e usar os objetos dessa classe. Um objeto de uma classe simplesmente se refere a uma instância da classe definida.
Python Class Basics
Na linguagem de programação Python, todos os dados são representados como uma instância de alguma classe. Se você não está familiarizado com o idioma, consulte nosso guia do iniciante em Python antes de seguir em frente.
Uma classe fornece um conjunto de comportamentos na forma de funções de membro (também conhecidas como métodos), que tem implementações que são comuns a todas as instâncias dessa classe e também determina a maneira como as informações de estado de sua instância são representadas na forma de atributos.
Consulte Mais informação: Métodos de classe em Python: as diferenças importantes
O código a seguir representa um exemplo de uma classe definida em Python. A classe definida no código fornece uma implementação de uma classe RaceCar.
Cada instância da classe fornece um modelo simples para diferentes marcas de carros e contém o seguinte estado informações: nome do carro, nome do motorista, número da placa do carro, velocidade atual, taxa de excesso de velocidade e cor.
Esta classe de carro modela um sensor especial dentro de cada carro que registra uma multa de $ 50 contra o motorista do carro se ele ou ela exceder o limite de velocidade legal de 140 milhas por hora.
Exemplo de uma classe (classe de carro)
classe Car:
#Construtor
#o método init é responsável por inicializar os valores da instância #variables na classe.
def __init __ (self, car_name, driver_name, license_plate_number,
current_speed, speeding_charge, color):
self.car_name = car_name
self._driver_name = driver_name
self._license_plate_number = license_plate_number
self._current_speed = current_speed
self._speeding_charge = speeding_charge
self._colour = color
# Métodos de acessor
#O método get_car_name retorna o nome do carro
def get_car_name (self):
return self._car_name
#O método get_driver_name retorna o nome do driver
def get_driver_name (self):
return self._driver_name
#O método get_license_plate retorna a placa do carro
def get_license_plate (self):
return self._license_plate
#O método get_current_speed retorna a velocidade atual na qual o carro está # se movendo
def get_current_speed (self):
return self._current_speed
#O método get_speeding_charge retorna a quantia total de dinheiro que o
#driver tem que pagar por excesso de velocidade
def get_speeding_charge (self):
return self._speeding_charge
#O método get_colour retorna a cor de nosso doce passeio!
def get_colour (self):
return self._colour
#Mutator methods
#O valor set_driver muda o motorista do nosso carro.
def set_driver (self, new_driver):
self._driver_name = new_driver
#O método speeding_ticket garante que o motorista pague 50 dólares quando # ele for flagrado acelerando acima de 140 milhas por hora :(
def speeding_ticket (self, current_speed):
se velocidade_atual <= 140:
retorna falso
outro:
self._speeding_charge + = 50
retornar verdadeiro
#O método make_payment garante que o motorista possa pagar por todo o #amount que ele deve por taxas de multas por excesso de velocidade.
def make_payment (self, amount_paid):
self._speeding_charge - = montante_pago
Uma explicação do exemplo de classe Python
O parâmetro "Self"
Em primeiro lugar, observe que há uma diferença entre a assinatura do método declarada na classe e a assinatura do método que é usada pelo programador para chamar a função. Por exemplo, o get_colour método conforme definido na classe leva um parâmetro que é o parâmetro ‘self’.
No entanto, quando o programador está chamando esse método em uma instância da classe, ele não fornece nenhum parâmetro. Este mesmo fenômeno pode ser observado no método speeding_ticket que é definido para assumir dois parâmetros na classe (ou seja, self e current_speed), mas o programador é capaz de executar este método fornecendo o valor apenas para ‘current_speed’ parâmetro.
Isso ocorre porque o objetivo do parâmetro "self" fornecido é vincular o método à instância do objeto em que foi chamado e não é um valor a ser fornecido pelo programador.
O construtor
Um Construtor de uma classe se refere ao método da classe que um usuário pode chamar para criar uma instância de objeto dessa classe. Na classe Car, o usuário pode criar uma instância de objeto usando a seguinte sintaxe:
#criando nosso próprio Bugatti :)
Carro (“Bugatti”, “David Sasu”, 90828, 0, 0, "Vermelho cereja")
A execução desse código resulta em uma chamada ao método __init__ na classe Car. A responsabilidade desse método é gerar um objeto de carro de crédito recém-criado com os valores de instância fornecidos. Cada objeto da classe Car é constituído por seis variáveis de instância que são:
- _car_name
- _nome do motorista
- _placa de carro
- _velocidade atual
- _speeding_charge
- _cor
Métodos de acesso
Esses são métodos escritos para acessar as informações de estado de uma instância de objeto. Na classe Car, os métodos acessadores que foram escritos são:
- get_car_name
- get_driver_name
- get_license_plate
- get_current_speed
- get_speeding_charge
- get_colour
Métodos mutadores:
Esses são métodos escritos para alterar as informações de estado de uma instância de objeto. Na classe Car, os métodos modificadores que foram escritos são:
- set_driver
- speeding_ticket
- faça o pagamento
O Conceito de Encapsulamento
‘Encapsulamento’ é um termo usado para descrever um princípio de design orientado a objetos, onde os componentes de um programa não devem revelar os detalhes internos de suas respectivas implementações. Para aumentar sua compreensão do conceito de encapsulamento, consulte nosso artigo sobre encapsulamento.
Verificação de erros
Nossa implementação da classe Car não é robusta, pois é provável que ela trave ou funcione mal, dependendo da entrada que recebe do programador.
Primeiro, observe que não verificamos os tipos dos parâmetros dos métodos speeding_ticket e make_payment, nem verificamos os tipos de qualquer um dos parâmetros do construtor. Isso pode levar ao travamento do programa se o usuário fornecer um argumento que não era esperado. Por exemplo, se o usuário fizer uma chamada como speeding_ticket (“chips ahoy”), o programa travaria porque o tipo que o método esperava era um inteiro e não uma string.
Agora você entende os fundamentos da classe Python
Neste artigo, você conheceu o conceito de uma classe Python e um objeto de classe Python. Você também foi apresentado às idéias sobre as quais uma classe Python é construída, tais como: encapsulamento, o identificador 'self', métodos de acesso e métodos modificadores.
Com essas informações, você deve ser capaz de criar uma classe Python simples por conta própria e testá-la :)
Agora, você terá que verificar sua identidade por meio de seu dispositivo móvel para vincular sua conta no desktop e no aplicativo da web.
- Programação
- Pitão
Assine a nossa newsletter
Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!
Mais um passo…!
Confirme o seu endereço de e-mail no e-mail que acabamos de enviar.