4.7.4 Unpacking Argument Lists

A situação inversa ocorre quando os argumentos já estão em uma lista ou tupla, mas precisam ser descompactados para uma chamada de função que requer argumentos posicionais separados. Por exemplo, a função interna range() espera argumentos separados para iniciar e parar. Se eles não estiverem disponíveis separadamente, escreva a chamada de função com o operador * para descompactar os argumentos de uma lista ou tupla:

>>> range(3, 6)   # normal call with separate arguments
[3, 4, 5]
>>> args = [3, 6]
>>> range(*args)  # call with arguments unpacked from list
[3, 4, 5]

Da mesma forma, os dicionários podem fornecer argumentos de palavras-chave com o operador *:

>>> def parrot(voltage, state='a stiff', action='voom'):
...     print "-- This parrot wouldn't", action,
...     print "if you put", voltage, "volts through it.",
...     print "E's", state, "!"
...
>>> d = {"voltage": "four million",
          "state": "bleedin' demised",
          "action": "VOOM"}
>>> parrot(**d)
-- This parrot wouldn't VOOM if you put four million
 volts through it. E's bleedin' demised !
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s