Ir para conteúdo
Fórum Script Brasil

joao0212

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Sobre joao0212

joao0212's Achievements

0

Reputação

  1. joao0212

    Getters e Setters

    Prezados, Como informei no último post, estou aprendendo python há pouco tempo e tem surgido algumas dúvidas. A dúvida da vez é referente ao encapsulamento. Vamos ao exemplo: Tenho 5 classes: Pessoa, Pai, Filha, Neta e TesteHerança A classe pessoa contém atributos e métodos, porém vazios, pois ela só serve para ser herdada pelas outras (* No sentido em que todo pai, filha ... é uma pessoa) # coding=utf-8 class Pessoa: nome = '' sobrenome = '' residencia = '' corDosOlhos = '' profissao = '' @classmethod def compararOlhos(cls): print '' @classmethod def imprimirInformacoes(cls): print '' A classe Filha contém a sobrescrita dos atributos e do método imprimirInformacoes(), e contém uma informação que depende da Classe Pai: # coding=utf-8 from Pessoa import Pessoa from Pai import Pai p = Pai() class Filha(Pessoa): nome = 'Marina' sobrenome = 'Martins' corDosOlhos = 'Azuis' residencia = 'Planaltina' profissao = 'Professora' @classmethod def imprimirInformacoes(cls): print '%s %s' % (Filha.nome, Filha.sobrenome) print 'Os olhos são : ' + Filha.corDosOlhos print 'Reside ein: ' + Filha.residencia print 'Trabalha como: ' + Filha.profissao print 'O nome do pai é: ' + p.get_nome() No momento em que eu dou p.get_nome() quero que ele receba o nome que vou passar no meu método set da Classe Pai. eis que a classe Pai está assim e ela é justamente meu problema. # coding=utf-8 from Pessoa import Pessoa class Pai(Pessoa): nome = None sobrenome = 'Martins' corDosOlhos = 'Pretos' residencia = 'Lago norte' def get_nome(self): return self.nome def set_nome(self, nome): self.nome = nome Preciso que o nome passado pelo usuário no argumento seja salvo no atributo nome, porém tentei de muitas formas e não consegui, fazendo com que minha classe Filha não consiga recuperar o nome do atributo pois o mesmo não está salvo. Quando informo nome = None, o programa diz que não pode concatenar o objetos NoneType com Str ... Quando informo nome = '' o programa mostra o campo vazio. Não sei se deu pra entender, mas como eu posso fazer pro meu atributo salvar o nome que passo neste momento abaixo? # coding=utf-8 from Pai import Pai from Filha import Filha from Neta import Neta class Main: p = Pai() f = Filha() n = Neta() p.set_nome("Antonio") f.imprimirInformacoes() Retorno quando declaro nome = '' Marina Martins Os olhos são : Azuis Reside ein: Planaltina Trabalha como: Professora O nome do pai é:
  2. Paulo, Realmente tinha tentado usar o readlines antes, mas estava fazendo o for errado, depois da sua dica, pensei bem e agora deu certo. Dessa maneira aqui: >>> x = open('C:\Users\joao.martins\Documents\\tabela.txt', 'r') >>> lst = x.readlines() >>> for i in range(len(lst)): ... print lst[i] Obrigado, cara ... Espero ter mais dúvidas para poder debater com a galera ... Abraço!!
  3. Prezados, bom dia!! Estou aprendendo python, após alguns anos de programação em java. Resolvi estudar bem detalhado, pra me familiarizar com a nova linguagem. Hoje venho com uma dúvida sobre manipulação de arquivos. Eu tenho um arquivo .txt que contém 102 linhas. Fiz um programa pra ler esse arquivo da seguinte maneira: lerTudo = open('C:\Users\joao.martins\Documents\\tabela.txt', 'r') for i in range(103): lerTudo.readline() lerTudo.close() Dessa maneira ele lê todo o conteúdo do arquivo. Porém minha dúvida é a seguinte: Tem como eu fazer um for no range sem um vf(valor fim) declarado? No caso de eu não saber quantas linhas eu tenho no arquivo, como faria para percorrer até o fim? Como disse, sou novo na linguagem, e acredito que isso seja simples, porém não encontrei nenhuma forma de fazê-lo. Desde já agradeço a atenção de todos.
×
×
  • Criar Novo...