Ir para o conteúdo
ou

Software livre Brasil

Magnun

Nenhum artigo selecionado ainda.
 Voltar a Blog
Tela cheia

[Curso de Python] Funções e Argumentos Nomeados

24 de Junho de 2010, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 174 vezes

Antes de prosseguir leia os artigos anteriores aqui.


No último post eu mostrei o básico de uma função com argumentos. Só que em Python há algumas funcionalidades a mais nos argumentos.


Funções e Argumentos Nomeados



Como já apresentei, Python utiliza palavras para designar os argumentos. Essas palavras não são utilizadas somente dentro do escopo da função, elas podem ser utilizadas também para a identificar um argumento. Vamos tomar como exemplo a função abaixo:

Código PHP:
>>> def mostra_numeros(num1num2num3):
...     print 
'Numero 1:',num1
...     print 'Numero 2:',num2
...     print 'Numero 3:',num3
...
>>> 
mostra_numeros(213)
Numero 12
Numero 2
1
Numero 3
3
>>> mostra_numeros(7,078)
Numero 17
Numero 2
0
Numero 3

Conforme exemplo acima, ao repassar os argumentos 2, 1 e 3 eles são vinculados às variáveis num1, num2 e num3 respectivamente. Até aqui nada de novo, mas vamos ver agora uma possibilidade que o Python nos fornece:

Código PHP:
>>> def mostra_numeros(num1num2num3):
...     print 
'Numero 1:',num1
...     print 'Numero 2:',num2
...     print 'Numero 3:',num3
...
>>> 
mostra_numeros(num2=2num1=1num3=3)
Numero 11
Numero 2
2
Numero 3
3
>>> mostra_numeros(num2=7num1=0num3=8)
Numero 10
Numero 2
7
Numero 3

Desta forma eu posso passar os argumentos desordenadamente para o Python. Eu tenho a liberdade de escolher quem será o num1, o num2 ou o num3. Para usar isso devemos apenas nos atentar para certos detalhes:

1. um argumento não nomeado não deve suceder um argumento nomeado:
Código PHP:
>>> mostra_numeros(num2=7num1=08)
  
File "<stdin>"line 1
SyntaxError
non-keyword arg after keyword arg 
2. Quando não nomeamos alguns argumentos eles atomaticamente são atribuídos às sequências da função:
Código PHP:
>>> mostra_numeros(7num1=0num3=8)
Traceback (most recent call last):
  
File "<stdin>"line 1in <module>
TypeErrormostra_numeros() got multiple values for keyword argument 'num1' 
Nesse último exemplo o Python entende que 7 é o num1, e logo em seguida eu tento vincular o num1 ao numero 0, ocorrendo o erro de que o num1 foi utilizado multiplas vezes.

Desta forma, ao misturar argumentos nomeados e não nomeados devemos tomar cuidado para que os nomeados sejam os últimos e não devem vincular a argumentos que não foram nomeados.

Como esse assunto não traz nenhum novo conceito, não deixarei exercícios. Vamos guardar exercício para o próximo assunto: Argumentos com valores padrões.

Até mais...

Fonte: http://under-linux.org/blogs/magnun/%5Bcurso-de-python%5D-funcoes-e-argumentos-nomeados-2144/

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.