collapse

Autor Tópico: Ajuda class e init em python  (Lida 170 vezes)

0 Membros e 1 Visitante estão vendo este tópico.

Offline linux_user

  • L4MM3R
  • *
  • Mensagens: 9
  • Curtidas: 3
  • Curtidas dadas: 2
Ajuda class e init em python
« Online: 17 de Janeiro de 2021, 15:01 »
boa tarde!
estou com um problema em python, eu ja li em varios lugares sobre class e __init__ em python, mas não consigo en tender de forma clara como se usa, podem me ajudar com isso?

Offline muhx

  • N00B
  • **
  • Mensagens: 87
  • Curtidas: 31
  • Curtidas dadas: 6
Re:class e init em python
« Resposta #1 Online: 19 de Janeiro de 2021, 02:43 »
Ok, então vamos lá.

O Python é uma linguagem orientada à objetos. Basicamente tudo é composto por objetos e métodos.

Considere o seguinte código:


Toda vez que um objeto é instanciado [linha 13], o Python cria o objeto e passa os parâmetros para o método built-in __init__(self, ...). Esse é chamado de constructor.



Assim como existe um método para quando um objeto é instanciado, também existe um método para quando ele é deletado [linha 15]. Esse método é chamado de destructor: __del__(self). [linha 10]

Então resumindo: constructor (__init__(self)), é chamado quando o objeto é criado e o destructor (__del__(self)) é chamado quando o objeto é destruído.

Só para esclarecer, caso haja dúvidas, self representa a instancia do próprio objeto.
« Última modificação: 19 de Janeiro de 2021, 02:47 por muhx »

Offline linux_user

  • L4MM3R
  • *
  • Mensagens: 9
  • Curtidas: 3
  • Curtidas dadas: 2
Re:class e init em python
« Resposta #2 Online: 19 de Janeiro de 2021, 16:06 »
obrigado pela ajuda amigo, agora deu pra en tender, veja:
Código: Links Bloqueados para Visitantes. Registre-se ou Login
#!/usr/bin/env python3
#!_*_coding: utf-8_*_
class aula:
    def __init__(self, pontoA, pontoB):
        self.pontoA = pontoA
        self.pontoB = pontoB
        r = self.pontoA * self.pontoB
        print(r)
exibe = aula(2, 5)
esse foi o codigo que escrevi, funciona, mas, e se eu precisar passar um valor que o usuario definir para a variavel?
por exemplo: var = input("valor: ")

Offline linux_user

  • L4MM3R
  • *
  • Mensagens: 9
  • Curtidas: 3
  • Curtidas dadas: 2
Re:class e init em python
« Resposta #3 Online: 19 de Janeiro de 2021, 16:45 »
consegui entender:
Código: Links Bloqueados para Visitantes. Registre-se ou Login
#!/usr/bin/env python3
#!_*_coding: utf-8_*_
class bom:
  def __init__(self, pa, pb):
    self.pa = pa
    self.pb = pb
    t = self.pa * self.pb
    print(t)
vpa = int(input("v1= "))
vpb = int(input("v2= "))
mostar = bom(vpa, vpb)
agora é só praticar! obrigado =D

Offline muhx

  • N00B
  • **
  • Mensagens: 87
  • Curtidas: 31
  • Curtidas dadas: 6
Re:class e init em python
« Resposta #4 Online: 19 de Janeiro de 2021, 20:05 »
É isso aí mesmo.

Você também pode chamar um método diretamente na classe após ela ser instanciada.

Por exemplo:
Código: Links Bloqueados para Visitantes. Registre-se ou Login
class MyClass(object):
    def __init__(self):
        print("Classe Instanciada!")

    def metodo(self, a: int, b: int):
        print(f"a+b={a+b}")

    def meu_input(self):
        entrada = input("Digite algo: ")
        print(f"Voce digitou: {entrada}")

meu_obj = MyClass()
meu_obj.metodo(10, 5)
meu_obj.meu_input()

Também é perfeitamente possível colocar um input dentro do constructor, afinal é como qualquer outro método.

- Bons estudos!

 

* CaveiraTech YouTube

* Facebook

Guilherme Junqueira
04 de Fevereiro de 2019, 18:01 por Guilherme Junqueira
Visual.: 31327 | Coment.: 20

Infelizmente a seção de Grupos de estudos do fórum estava sendo usada por organizações criminosas para recruta...
Guilherme Junqueira
27 de Julho de 2018, 17:30 por Guilherme Junqueira
Visual.: 31943 | Coment.: 60

Pessoal, estou pensando seriamente na possibilidade de criar um novo fórum, só que voltado 100% à programação....
Guilherme Junqueira
26 de Junho de 2018, 20:25 por Guilherme Junqueira
Visual.: 20126 | Coment.: 41

Resolvi fazer uma enquete para ver qual o posicionamento político da maioria aqui no fórum. O Alobus já fez um...
Guilherme Junqueira
20 de Junho de 2018, 12:56 por Guilherme Junqueira
Visual.: 19939 | Coment.: 61

Últimamente o fórum vem sofrendo com muitas pessoas postando pirataria e esse não é o intuito do mesmo. A pira...
Guilherme Junqueira
20 de Fevereiro de 2018, 20:18 por Guilherme Junqueira
Visual.: 17090 | Coment.: 4

Boa noite pessoal, venho apresentar para vocêsLinks Bloqueados para Visitantes. Registre-se ou Login...

* Equipe

Guilherme Junqueira admin Guilherme Junqueira
Administrador
Alobus gmod Alobus
Moderador Geral

* Tópicos Recentes