quinta-feira, 26 de março de 2009

Python: (des)empacotando argumentos

Packing/unpacking de argumentos é algo que as vezes é esquecido em Pytho e é bem útil em algumas situações.

Packing permite uma função receber um número arbitrário de argumentos:

In [1]: def a(*b):
   ...:     print len(b), b
   ...:
   ...:

In [2]: a(1,2,3,4,5)
5 (1, 2, 3, 4, 5)

O unpacking faz o serviço contrário, ou seja, ao chamar uma função, os argumentos de uma tupla podem ser "explodidos" (na falta de uma palavra melhor). Aqui vai um exemplo bem prático disso, usando o QColor do PyQt:

color = (255, 0, 0)
QColor.fromRgb(*color) # ao invés de QColor.fromRgb(color[0], color[1], color[2])

A função recebe 3 argumentos (r, g, b), e usando o unpacking economizamos alguns caracteres.

Tem mais algumas dicas na documentação oficial, incluindo a possibilidade de usar isso pra keyword arguments usando a notação "**".

quinta-feira, 19 de março de 2009

Internet Explorer 8 Final!

Firefox

'nuf said.

domingo, 1 de março de 2009

ZFS

O FLOSS Weekly entrevistou nessa semana Aaron Newcomb e David Brittle, falando sobre o ZFS. Pra quem não sabe, ZFS é um sistema de arquivos que vem sendo desenvolvido pela Sun há um tempo, com características bem interessantes.

A entrevista tem cerca de 75 minutos, e pode ser encontrada aqui.

analytics