19 de outubro de 2010

Função que retorna vários valores

Em Python é possível ver uma função (ou método) retornar mais de um valor tirando proveito de listas e tuplas:

>>> def dados_pessoais():
...   return ('joao', 16)
...
>>> nome, idade = dados_pessoais()
>>>
>>> nome
'joao'
>>> idade
16
>>>

Sem complicação, né?

Aproveite e veja como desempacotar uma lista ou tupla atribuindo valor a várias variáveis ao mesmo tempo:

>>> registro = ('marcos', '3324-7321', '25/02/1987')
>>> type(registro)
<type 'tuple'>
>>>
>>> nome, fone, nascimento = registro
>>> print nome, fone, nascimento
marcos 3324-7321 25/02/1987
>>>

Nos exemplos eu usei tupla, mas se for lista é do mesmo jeito.

Eu sou Vinicius Assef, um programador do século passado que gosta de Python, pratica Lean Development e acredita em Deus. Você pode me contactar por email ou twitter.

2 comentários:

  1. Isso funciona para retorno de qualquer sequência: tupla, lista, string, generator, iterator... :D

    ResponderExcluir
  2. Fabio, muito legal. Eu não sabia.

    Sugiro fazerem esse teste e ver o resultado:
    >>> a,b = '12'
    >>> print 'a=%s b=%s' % (a,b)

    ;-)

    ResponderExcluir

Marcadores