Author Archives: Osvaldo Santana

Python: Pegadinhas com += e list.extend()

Palavras-chave: Python, pegadinhas, gotchas, pitfalls, listas, extends Em Python o operador de soma e atribuição += pode ser usado na forma “a += 1” que tem o mesmo significado que a expressão “a = a + 1“. Até aí nada … Continue reading

Posted in Python | 2 Comments

Python: Singleton

Palavras-chave: Python, Design Patterns, Padrões de Projeto, OOP, POO Um Singleton é um dos padrões de projeto descrito no famoso livro “Design Patterns” escrito pela GoF (Gang of Four) e o seu funcionamento é bastante simples: uma classe é chamada … Continue reading

Posted in Python | 6 Comments

Python: Cópia "rasa" de listas

Palavras-chave: Python, listas, cópia, objetos Em Python as variáveis não armazenam os objetos quando atribuímos um valor à elas. Ao invés disso uma variável em Python guarda apenas uma referência para o objeto em questão. Uma prova disto pode ser … Continue reading

Posted in Python | 6 Comments

Python: Desligando o prompt de comandos no Windows

Palavras-chave: Python, command prompt, prompt de comandos, prompt, DOS, Windows Quando executamos um programa “.py” no Windows uma janela de prompt irá aparecer automaticamente para que as eventuais saídas de texto do seu programa sejam enviadas para lá. Mas essa … Continue reading

Posted in Python, Windows | Leave a comment

Python: Fazer switch/case com dicionários

Palavras-chave: Python, dicionários, switch, case Algumas pessoas reclamam de que Python não possui uma instrução switch/case, que permite executar trechos de código dependendo do valor de uma determinada variável. Python realmente não disponibiliza essa funcionalidade, mas podemos simulá-la utilizando funções … Continue reading

Posted in Python | 5 Comments

Python: Listagem com cores alternadas (zebra)

Palavras-chave: Python, listagem, cores, zebrado, zebra list Em aplicações Web é bastante comum exibir grandes listagens em uma página. Para facilitar a leitura dessas listagens, quase sempre utilizamos do artifício de alternar as cores de fundo das linhas exibidas. O … Continue reading

Posted in Python | 2 Comments

Python: Evitando o excesso de "or" em condicionais

Palavras-chave: Python, or, in, if, while, condicional, pythonico Quem está começando no mundo do desenvolvimento Python e não conhece muito a linguagem, costuma criar cláusulas condicionais muito longas utilizando o operador “or”: if a == “foo” or a == “bar” … Continue reading

Posted in Python | 1 Comment

Python: Documentação e testes

Palavras-chave: testes, unittest, docstring, documentação, testes unitários, rest, docutils Todo desenvolvedor sabe que fazer testes é superimportante e que fazer documentação também é algo que melhora a qualidade de seus produtos. Mas num primeiro momento, fazer testes é trabalhoso e … Continue reading

Posted in Python | 1 Comment

Python: Descobrir qual o diretório do usuário

Palavras-chave: userdir, home, homedrive, homepath, arquivo de configuração Frequentemente precisamos guardar preferências do usuário de nossos programas em algum arquivo de configuração. Em ambientes UNIX/Linux a prática diz que esses arquivos devem ser guardados dentro do diretório $HOME e de … Continue reading

Posted in Python | 1 Comment

Python: Imprimir mensagens de erro (stderr)

Palavras-chave: print, stdin, stdout, stderr, erro, dispositivos, entrada/saída Quando estamos fazendo um programa que roda na linha de comando e precisamos fazer com que esse programa imprima uma mensagem de erro ou alerta, é aconselhável enviar essa mensagem para a … Continue reading

Posted in Python | Leave a comment