Pergunta

Às vezes eu vou estar trabalhando com, digamos, uma lista de milhares de itens em IDLE, e acidentalmente imprimi-lo para o shell. Quando isso acontece, ele trava ou pelo menos muito significaly desacelera IDLE. Como você pode imaginar, isso é extremamente inconveniente. Existe uma maneira de fazer isso, em vez de imprimir a coisa toda, me dê um resumidas [1, 2, ...] saída? Qualquer ajuda seria muito apreciada.

Foi útil?

Solução

Como acima, tente uma função de impressão personalizado como:

def my_print(obj):  
    if hasattr(obj, '__len__') and len(obj) > 100:  
        print '... omitted object of %s with length %d ...' % (type(obj), len(obj))  
    else: print obj

Outras dicas

Use IPython como shell vez.

Você pode usar a função de impressão personalizada.

Em Python 3, uma vez que impressão é uma função, você deve ser capaz de "override"-lo. (Eu não tê-lo instalado, então não posso testá-lo para ter certeza.) Provavelmente não recomendado para aplicações reais, mas se você está apenas tentando as coisas, seria bom eu suponho.

Ele seria algo como:

def myprint(*args):
    # write the function as described by other people
print = myprint

O Squeezer extensão para IDLE foi escrito para fazer exatamente isso. A partir da descrição de PyPI:

IDLE pode pendurar se a saída muito longo é impresso. Para evitar isso, o Espremedor extensões de pega qualquer saída de mais de 80 linhas de texto (configurável) e exibe uma caixa retangular em vez disso:

espremedor, e muitos outros ramais livres são incluídos na IdleX .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top