# -*- coding: UTF-8 -*-
import PerfilError
class Perfil(object):
    'Classe padrao para perfis de usuário'

    def __init__(self, nome, telefone, empresa):  # Son las carectarísticas y es un costructtor que recibe parámetros
        if(len(nome) < 3):
            raise ArgumentoInvalidoError('Nome deve ter pelo menos 3 caracteres')  # Verifica parámetros deja mas
            #  reutilizable y se usa la clase
        self.nome = nome
        self.telefone = telefone
        self.empresa = empresa
        self.curtidas = 0
        #self.__tipo = tipo

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

    def curtir(self):
        self.__curtidas += 1

    def obter_curtidas(self):
        return self.__curtidas

    #  @staticmethod   # Decorator Método de clase
    @classmethod  # para código genérico recibe como parámetro el nombre de clase
    def gerar_perfil(classe, nome_arquivo):
        arquivo = open(nome_arquivo, 'r')
        perfis = []
        for linha in arquivo:
            valores = linha.split(',')
            if(len(valores) is not 3):  #Para verificar el tamaño de lista si no tiene lanza excepxión
                raise PerfilError('Uma linha no arquivo % s deve ter 3 valores' % nome_arquivo)
            perfis.append(classe(*valores))
        arquivo.close()
        return perfis


class Perfil_Vip(Perfil):
    'Classe padrao para perfis de usuário'

    def __init__(self, nome, telefone, empresa, apelido=''):
        super(Perfil_Vip, self).__init__(nome, telefone, empresa)  # Super Para ingresar clase padre de clase hija
        self.apelido = apelido

    def obter_creditos(self):
        if self.__tipo == 0:
            return super(Perfil_Vip, self).obter_curtidas() * 10  # Se usa super para ingresar a la clase padre

class ArgumentoInvalidoError(Exception):  # Herada una excepción de la clase
    def __init__(self, mensagem):
        self.mensagem = mensagem
    def __str__(self):  # Método para imprimir mensaje
        return repr(self.mensagem)

# perfil = Perfil(nome='Jorge Sevilla', telefone='991502621', empresa='X')
# perfil2 = Perfil(empresa='x', nome='Jorge Sevilla', telefone='1234')
# perfil2.imprimi()
# perfil.curtir()
# perfil.curtidas
3d050577dcae8d0bcde6dd6c72744be8b5fe2b16
<mask token>


class Perfil(object):
    <mask token>
    <mask token>
    <mask token>

    def curtir(self):
        self.__curtidas += 1

    def obter_curtidas(self):
        return self.__curtidas
    <mask token>


class Perfil_Vip(Perfil):
    """Classe padrao para perfis de usuário"""

    def __init__(self, nome, telefone, empresa, apelido=''):
        super(Perfil_Vip, self).__init__(nome, telefone, empresa)
        self.apelido = apelido

    def obter_creditos(self):
        if self.__tipo == 0:
            return super(Perfil_Vip, self).obter_curtidas() * 10


class ArgumentoInvalidoError(Exception):

    def __init__(self, mensagem):
        self.mensagem = mensagem

    def __str__(self):
        return repr(self.mensagem)

<mask token>


class Perfil(object):
    <mask token>

    def __init__(self, nome, telefone, empresa):
        if len(nome) < 3:
            raise ArgumentoInvalidoError(
                'Nome deve ter pelo menos 3 caracteres')
        self.nome = nome
        self.telefone = telefone
        self.empresa = empresa
        self.curtidas = 0
    <mask token>

    def curtir(self):
        self.__curtidas += 1

    def obter_curtidas(self):
        return self.__curtidas
    <mask token>


class Perfil_Vip(Perfil):
    """Classe padrao para perfis de usuário"""

    def __init__(self, nome, telefone, empresa, apelido=''):
        super(Perfil_Vip, self).__init__(nome, telefone, empresa)
        self.apelido = apelido

    def obter_creditos(self):
        if self.__tipo == 0:
            return super(Perfil_Vip, self).obter_curtidas() * 10


class ArgumentoInvalidoError(Exception):

    def __init__(self, mensagem):
        self.mensagem = mensagem

    def __str__(self):
        return repr(self.mensagem)

<mask token>


class Perfil(object):
    <mask token>

    def __init__(self, nome, telefone, empresa):
        if len(nome) < 3:
            raise ArgumentoInvalidoError(
                'Nome deve ter pelo menos 3 caracteres')
        self.nome = nome
        self.telefone = telefone
        self.empresa = empresa
        self.curtidas = 0

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

    def curtir(self):
        self.__curtidas += 1

    def obter_curtidas(self):
        return self.__curtidas

    @classmethod
    def gerar_perfil(classe, nome_arquivo):
        arquivo = open(nome_arquivo, 'r')
        perfis = []
        for linha in arquivo:
            valores = linha.split(',')
            if len(valores) is not 3:
                raise PerfilError(
                    'Uma linha no arquivo % s deve ter 3 valores' %
                    nome_arquivo)
            perfis.append(classe(*valores))
        arquivo.close()
        return perfis


class Perfil_Vip(Perfil):
    """Classe padrao para perfis de usuário"""

    def __init__(self, nome, telefone, empresa, apelido=''):
        super(Perfil_Vip, self).__init__(nome, telefone, empresa)
        self.apelido = apelido

    def obter_creditos(self):
        if self.__tipo == 0:
            return super(Perfil_Vip, self).obter_curtidas() * 10


class ArgumentoInvalidoError(Exception):

    def __init__(self, mensagem):
        self.mensagem = mensagem

    def __str__(self):
        return repr(self.mensagem)

<mask token>


class Perfil(object):
    """Classe padrao para perfis de usuário"""

    def __init__(self, nome, telefone, empresa):
        if len(nome) < 3:
            raise ArgumentoInvalidoError(
                'Nome deve ter pelo menos 3 caracteres')
        self.nome = nome
        self.telefone = telefone
        self.empresa = empresa
        self.curtidas = 0

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

    def curtir(self):
        self.__curtidas += 1

    def obter_curtidas(self):
        return self.__curtidas

    @classmethod
    def gerar_perfil(classe, nome_arquivo):
        arquivo = open(nome_arquivo, 'r')
        perfis = []
        for linha in arquivo:
            valores = linha.split(',')
            if len(valores) is not 3:
                raise PerfilError(
                    'Uma linha no arquivo % s deve ter 3 valores' %
                    nome_arquivo)
            perfis.append(classe(*valores))
        arquivo.close()
        return perfis


class Perfil_Vip(Perfil):
    """Classe padrao para perfis de usuário"""

    def __init__(self, nome, telefone, empresa, apelido=''):
        super(Perfil_Vip, self).__init__(nome, telefone, empresa)
        self.apelido = apelido

    def obter_creditos(self):
        if self.__tipo == 0:
            return super(Perfil_Vip, self).obter_curtidas() * 10


class ArgumentoInvalidoError(Exception):

    def __init__(self, mensagem):
        self.mensagem = mensagem

    def __str__(self):
        return repr(self.mensagem)

# -*- coding: UTF-8 -*-
import PerfilError
class Perfil(object):
    'Classe padrao para perfis de usuário'

    def __init__(self, nome, telefone, empresa):  # Son las carectarísticas y es un costructtor que recibe parámetros
        if(len(nome) < 3):
            raise ArgumentoInvalidoError('Nome deve ter pelo menos 3 caracteres')  # Verifica parámetros deja mas
            #  reutilizable y se usa la clase
        self.nome = nome
        self.telefone = telefone
        self.empresa = empresa
        self.curtidas = 0
        #self.__tipo = tipo

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

    def curtir(self):
        self.__curtidas += 1

    def obter_curtidas(self):
        return self.__curtidas

    #  @staticmethod   # Decorator Método de clase
    @classmethod  # para código genérico recibe como parámetro el nombre de clase
    def gerar_perfil(classe, nome_arquivo):
        arquivo = open(nome_arquivo, 'r')
        perfis = []
        for linha in arquivo:
            valores = linha.split(',')
            if(len(valores) is not 3):  #Para verificar el tamaño de lista si no tiene lanza excepxión
                raise PerfilError('Uma linha no arquivo % s deve ter 3 valores' % nome_arquivo)
            perfis.append(classe(*valores))
        arquivo.close()
        return perfis


class Perfil_Vip(Perfil):
    'Classe padrao para perfis de usuário'

    def __init__(self, nome, telefone, empresa, apelido=''):
        super(Perfil_Vip, self).__init__(nome, telefone, empresa)  # Super Para ingresar clase padre de clase hija
        self.apelido = apelido

    def obter_creditos(self):
        if self.__tipo == 0:
            return super(Perfil_Vip, self).obter_curtidas() * 10  # Se usa super para ingresar a la clase padre

class ArgumentoInvalidoError(Exception):  # Herada una excepción de la clase
    def __init__(self, mensagem):
        self.mensagem = mensagem
    def __str__(self):  # Método para imprimir mensaje
        return repr(self.mensagem)

# perfil = Perfil(nome='Jorge Sevilla', telefone='991502621', empresa='X')
# perfil2 = Perfil(empresa='x', nome='Jorge Sevilla', telefone='1234')
# perfil2.imprimi()
# perfil.curtir()
# perfil.curtidas