Ver Feed RSS

root@blog:/# chmod o+r *

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

Avalie este Post de Blog

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...

Atualizado 01-09-2010 em 09:53 por Magnun

Categorias
Artigos , Artigos , Cursos , Curso de Python , Tutoriais

Comentários

  1. Avatar de luizhm
    Grande Magnun,

    Acabei de ver todas as aulas (comecei semana passada). Quando é a proxima aula?
    Apesar de não ser programador queria muito aprende ao meno o básico de Python. Quem sabe até entrar nesse seu grupo de desenvolvedores rsrsrs.
  2. Avatar de Magnun
    Olá luizhm,

    Bem, no momento estou meio enrolado, logo não estou podendo escrever as aulas. Mas te garanto que em breve estarei postando novas aulas. Todos são bem vindos no grupo, basta ter vontade, curiosidade e "espirito de comunidade".

    Até mais...
  3. Avatar de Magnun
    Dando continuidade ao curso aqui.
    Não esqueçam de assinar o feed RSS do meu blog, assim vocês ficam sabendo de novos posts.
  4. Avatar de fabraga
    Dito e feito! (para o novo RSS)

+ Enviar Comentário