#Importando módulos com OOP

1 messages · Page 1 of 1 (latest)

glad torrent
#

Estou fazendo um ""banco"" para colocar em prática o que eu vou aprendendo sobre Orientação a Objetos. Fiz duas classes, que estão em dois arquivos diferentes: a primeira é uma classe para os clientes, e a segunda é uma classe para a conta corrente dos mesmos. Eu importo essas duas classes em um arquivo chamado teste.py

O problema? Não sei como verificar se está tudo dando certo, porque não sei como visualizar o conteúdo das variáveis que estou criando. Tudo o que o terminal me retorna é <programa.Classe object at numeroserial>, o que me faz crer que sim, estou fazendo tudo nos conformes, mas como eu VEJO, como eu VISUALIZO, devo chamar o Batman?

Segue print do meu terminal em teste.py

misty comet
#

Isso não é aquela mesma coisa do javaescripto? Pera, esqueci o nome

Eu não soube pesquisar direito, mas vê se isso aqui ajuda https://docs.python.org/3/library/pprint.html

#

O que mencionei do javaescripto é um negócio que quando tu tem um objeto aninhando em outro e dá um console, ele não mostra tudo, não vou ter um exemplo agooooooora agora, mas não pode ser o caso?

elder sleet
#

tu precisa definir exatamente o que tu quer ver no terminal, porque se tu simplesmente chama um print com a instância que tá criando (que é o que tu já tá fazendo) o interpretador vai entender que tu quer ver o endereço na memória daquela instância, porque é isso que ela representa. Esse número de serial é nada mais que o endereço da memória onde o teu objeto tá alocado, o que significa que o código tá funcionando de boa.

Se tu quer ver uma propriedade específica, como o nome do cliente, pode chamar um print com Client("Batman").name

No python todas as propriedades são publicas, então se tu tem uma propriedade name definida na tua classe tu pode visualizar ela mesmo fora da instância

glad torrent
#

Obrigada!

amber harness
#

Esse e a forma q o python imprime objetos ou seja ta certo a importação e a instancia do objeto.

#

Se quiser representar melhor vc pode criar o método __str__ nas suas classes. Esse metodo tem q retonar uma string q vai ser mostrada quando vc printar o objeto

quiet blaze
#

Não digo por todas as linguagens de programação, mas a maioria que já estudei onde tem classes/objetos tem esse comportamento de forma parecida.
O objeto que você declara e usa é """"""como se fosse"""""""" só um [Object] e aí quando printamos só vem isso escrito, as vezes o espaço de memória as vezes só escrito Object .

Simplificando bastante Classes em POO, pensa como se fosse um bando de atributos e métodos juntos pra dar as características de Objeto.
Então quando queremos dar print em alguma coisa a gente sempre tem que transformar esse objeto em string, ou seja, sempre vamos precisar de algum tipo de transformação da variavel que quiser para uma string. Todos os objetos geralmente teriam um método padrão .toString() que já fazem essa conversão automática no que colocamos no print, no caso das classes o padrão desse método é imprimir isso que você viu no console.

Agora dizendo efetivamente o que precisa ser feito:
Você precisa então sobrescrever esse método toString ou seja lá qual é o nome que o Python dá, o @amber harness ali falou certinho que esse método no python seria o __str__, então você pode sobrescrever esse método retornando uma string da forma que gostaria de ver esse objeto.