Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida no Ex. 5 da Aula 9 - Encapsulamento

O código está igual ao ensinado, porém não executa.

Código da classe:

# -*- coding: UTF-8 -*-

class Perfil(object):
   'Classe padrão para perfis de usuários'

   def __init__(self, nome, telefone, empresa):    
        self.nome = nome
        self.telefone = telefone
        self.empresa = empresa
        self.curtidas = 0        

    def imprimir(self):
        print 'Nome %s, Telefone %s, Empresa %s, Curtidas %s' % (self.nome, self.telefone, self.empresa)

Aparece o seguinte erro:

>>> from models import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "models.py", line 12
    def imprimir(self):
                      ^
IndentationError: unindent does not match any outer indentation level
4 respostas
solução!

Eu código não está indentado.

Olhando seu código, já dá para notar que a segunda função, no caso imprimir está desalinhada, não indentada.

Pode parecer uma desvantagem de linguagem isso, contudo a indentação de código é algo que todos nós deveríamos fazer. Vi que você teve a boa fé de indentar, mas ficou esse espaço que atrapalhou tudo.

Você precisa deixar o código indentado.

-- coding: UTF-8 --

class Perfil(object): 'Classe padrão para perfis de usuários'

def init(self, nome, telefone, empresa): self.nome = nome self.telefone = telefone self.empresa = empresa self.curtidas = 0

def imprimir(self): print('Nome %s, Telefone %s, Empresa %s, Curtidas %s' % (self.nome, self.telefone, self.empresa))

Basta retirar um espaço da sua função def imprimir(self): que irá funcionar o seu exe.py

Lucas, tudo bem? Quando for postar um código, use a formatação especial para facilitar a leitura. Mas é isso mesmo.

-- coding: UTF-8 --

class Perfil(object):

'Classe padrão para perfis de usuários'

def init (self, nome, telefone, empresa): self.nome = nome self.telefone = telefone self.empresa = empresa self.curtidas = 0

def imprimir(self): print('Nome %s, Telefone %s, Empresa %s, Curtidas %s' %(self.nome, self.telefone, self.empresa))

Basta retirar um espaço da sua função def imprimir(self): que irá funcionar o seu exe.py

Arrumado !!