Não consegui compreender claramente o que o professor diz com INSTANCIAR objeto, alguém poderia tentar explicar de alguma maneira diferente ? Desde já, agradeço !
Não consegui compreender claramente o que o professor diz com INSTANCIAR objeto, alguém poderia tentar explicar de alguma maneira diferente ? Desde já, agradeço !
Olá Gabriel, tudo bem?
Vou tentar descrever oque é instanciar um objeto de uma forma simples pra te ajudar. Vamos lá!
Segundo a documentação doPython, uma classe associa dados (atributos) e operações (métodos) numa só estrutura. Um objeto é uma instância de uma classe. Ou seja, uma representação da classe. Por exemplo, usuario1 é uma instância de uma classe chamada Pessoa, mas a Pessoa é a classe que o representa de uma forma genérica. Se você criar um outro objeto chamado usuario2, esse objeto também será uma instancia da classe Pessoa.
Exemplo 1 - Esse é o exemplo mencionado no começo:
class Pessoa:
def __init__(self, nome):
self.nome = nome
def __str__(self):
return self.nome
if __name__ == '__main__':
usuario1 = Pessoa('Gabriel')
print(usuario1)
usuario2 = Pessoa('Fábio')
print(usuario2)
Saida:
>>> Gabriel
>>> Fábio
Note que usuario1
é uma instância da classe Pessoa, e usuario2
é uma outra instância. Ou seja, temos dois objetos: usuario1
e usuario2
.
Obs: usamos o if __name__ == '__main__':
para testar a nossa aplicação.
Exemplo 2 - Existem pelo menos duas formas diferentes de trabalhar com os parâmetros de entrada. Neste exemplo, definiremos o parâmetro apenas uma vez com um método especial do Python chamado init. Segundo João Reis, este método é chamado quando um objeto de uma classe é instânciado. Este método é útil para fazer qualquer inicialização que você queira com seu objeto, ou seja, ele é o método "Inicializador" da instancia.
#calculadora.py
class Calculadora:
def __init__(self, param1, param2):
self.a = param1
self.b = param2
def soma(self):
return self.a + self.b
def subtrai(self):
return self.a - self.b
def multiplica(self):
return self.a * self.b
def divide(self):
return self.a / self.b
Note que definimos dois parâmetros param1
e param2
(dentro do parênteses). E o self.a
e self.b
é um novo campo.
Como dito antes, definimos os valores iniciais apenas uma vez e depois apenas usamos os métodos para calcular os valores.
Podemos rodar o Python no modo modo interativo pelo terminal e importar a classe (veja este video).
$ python3
>>> from calculadora import Calculadora
>>> c = Calculadora(128,2)
>>> print('Soma:', c.soma())
>>> print('Subtração:', c.subtrai())
>>> print('Multiplicação:', c.multiplica())
>>> print('Divisão:', c.divide())
c = Calculadora(128,2) # é uma instância da classe com dois valores iniciais.
O resultado é:
>>> Soma: 130
>>> Subtração: 126
>>> Multiplicação: 256
>>> Divisão: 64.0
É isso! Espero que eu tenha te ajudado :)
Muito bom, obrigado