Como usar o pprint para imprimir um objeto usando o método __str __ (próprio) intern
Eu tenho um script Python que processa um arquivo .txt que contém informações de uso do relatório. Gostaria de encontrar uma maneira de imprimir corretamente os atributos de um objeto usando a função pprint (vars (objeto)) da pprin
O script lê o arquivo e cria instâncias de uma classe Report. Aqui está a turma.
class Report(object):
def __init__(self, line, headers):
self.date_added=get_column_by_header(line,headers,"Date Added")
self.user=get_column_by_header(line,headers,"Login ID")
self.report=get_column_by_header(line,headers,"Search/Report Description")
self.price=get_column_by_header(line,headers,"Price")
self.retail_price=get_column_by_header(line,headers,"Retail Price")
def __str__(self):
from pprint import pprint
return str(pprint(vars(self)))
Gostaria de poder imprimir instâncias do relatório de forma limpa a-la-pprin
for i,line in enumerate(open(path+file_1,'r')):
line=line.strip().split("|")
if i==0:
headers=line
if i==1:
record=Report(line,headers)
print record
Quando eu ligo
print record
para uma única instância do Report, é isso que recebo no shell.
{'date_added': '1/3/2012 14:06',
'price': '0',
'report': 'some_report',
'retail_price': '0.25',
'user': 'some_username'}
None
Minha pergunta é dupla.
Primeiro, essa é uma maneira boa / desejada de imprimir os atributos de um objeto de maneira limpa? Existe uma maneira melhor de fazer isso com ou sem pprint?
Segundo, por que
None
imprimir para o shell no final? Estou confuso de onde isso vem.
brigado por qualquer dic