NOME DURAÇÃO
Curso de Python
Primeira Aula de Python
Como Instalar o Python no Windows
Características do Python
Recursos do Python
IDLE - Modo Interativo do Python
Instalando o PyCharm no Windows
Primeiro programa em Python
Comentários em Python
Indentação do código Python
Variáveis em Python
Características das Variáveis em Python
Nomenclatura das Variáveis em Python
Tipos de dados em Python
Variáveis do tipo Ponto Flutuante do Python
Entrada de Dados em Python
Operadores Aritméticos do Python
Módulo da Divisão em Python
Potenciação e Radiciação em Python
Operadores Relacionais do Python
Tomada de Decisão em Python
Estrutura if e else em Python
Depurando código Python
Operadores Relacionais Compostos do Python
Operadores Relacionais na Prática em Python
Operadores Lógicos em Python
Blocos de Instrução em Python
Blocos de Instrução em Python (Parte II)
Blocos de Instrução Python na Prática
Escopo de Nomes em Python
Estrutura de Atribuição Simples do Python
Atribuição Múltipla em Python
Operadores de Atribuição Compostos do Python
Atribuição Condicional em Python
Iteração em Python
Laços de Repetição do Python
Estrutura de repetição while em Python
A instrução for em Python
A função range() do Python
O for loop e a função range() do Python
Instrução break do Python
Instrução continue em Python
Estruturas de Dados Lista em Python
Lista, Pilha, Array, Set em Python
A classe list do Python
Classe list - Conceitos Avançados do Python
Funções da Classe list do Python
Iteração de Listas em Python
Fatiando Listas em Python
Incluindo, Alterando e Excluindo Elementos no Python
Ordenamento de Listas em Python
Quantidade de Itens em Python
Tuplas em Python
Operadores in e not in do Python
Operadores and, or e in do Python
Exemplo com Operador in em Python
Introdução às Strings em Python
Fatiando Strings com Python
Funções das Strings no Python
Comparação de Strings em Python
Iterando Strings em Python
Introdução aos Dicionários do Python
Dicionários na Prática com Python
Funções dos Dicionários no Python
Introdução às Funções em Python
Parâmetros de Função em Python
Parâmetros default em Python
Argumento de Função Nomeado vs Posicional em Python
Retornando Valores pelas Funções em Python

Nesta aula estudaremos o conceito de Parâmetros Nomeados e Parâmetros Posicionais. Estudaremos a diferença entre os conceitos e suas características, bem como quando utilizar cada uma das definição.

ARGUMENTOS NOMEADOS (KEYWORD ARGUMENTS)

Em Python é possível invocarmos funções passando os argumentos de forma posicional ou então, através da associação chave-valor.

Argumento posicional é o nome utilizado para a passagem de valores onde cada valor estara na ordem conforme implementado na função.

Argumento nomeado é a passagem de valores fazendo associação com o nome do parâmetro e o valor que está sendo enviado.

Lembre-se que argumento e parâmetro são nomes diferentes para conceitos iguais. O termo argumento é utilizado quando determinada função está sendo invocada, logo, dizemos que a função tem definido x argumentos. Parâmetro é o nome utilizado quando estamos manipulando a função propriamente dita, logo, dizemos que a função declarou x parâmetros.

Considere o trecho de código a seguir:

def minha_func(a, b, c):
    print(a, b, c)

# invocando a função minha_func() passando valores de forma posicional
minha_func(1, 2, 3)
# invocando a função minha_func() passando valores de forma chave-valor
minha_func(a=1, b=2, c=3)
# invocando a função minha_func() passando valores de forma chave-valor
# porém, fora de ordem
minha_func(a=1, c=3, b=2)

No código acima, declaramos uma função de nome minha_func(a, b, c) e definimos 3 parâmetros de nomes, (a, b, c). Em seguida, invocamos a função minha_func() 2 vezes. Na primeira, passamos 3 valores na ordem em que estes foram definidos, ou seja, 1, 2, 3 serão, automaticamente definidos, para os parâmetros a, b e c respectivamente. Em seguida, invocamos a função novamente, porém, definimos os parâmetro de maneira nomeada, isto é, a cada parâmetro associamos determinado valor.

Argumento nomeado é um recurso que permite a passagem de valores pela associação chave-valor e assim, os mesmos não precisaram estar dispostos numa ordem pre-estabelecida, até porque, o Python receberá um dicionário que contém o nome e o valor de cada parâmetro.

Se analisarmos a forma que passamos valores e as estruturas estudadas, é possível perceber que a passagem de parâmetros posicionais, nada mais é do que o envio de uma tupla <{filename}../curso-de-python/0052_tuplas-python.rst>, enquanto que a passagem de valores nomeados, é o envio de um dicionário <{filename}../curso-de-python/0061_introducao-aos-dicionarios-python.rst>.

A única regra em relação a passagem de valores através de parâmetros nomeados e parâmetros posicionais, é que devemos escolher uma das formas de envio, isto é, ou utilizamos parâmetros posicionais ou então, parâmetros nomeados.

EXCEÇÃO À REGRA

É possível invocar uma função passando os primeiros argumentos de forma posicional e o restante, de forma nomeada. Porém, a regra para trabalhar dessa maneira é: argumentos posicionais, em seguida, argumentos nomeados. Tomemos como exemplo o código a seguir:

def minha_func2(a, b, c, d):
    print(a, b, c, d)

minha_func(1, 2, d=4, c=3)

No código acima, definimos uma função semelhante a estudada no primeiro exemplo, porém, que contém mais um argumento de nome d. Em seguida, invocamos a função e, para os 2 primeiros argumentos, enviamos valores de maneira posicional. Já, para os 2 argumentos finais, de nomes c e d, passamos valores associando o nome do parâmetro com o respectivo valor.

EXEMPLO FEITO EM AULA

# coding: utf-8

# =================
#  = eXcript.com =
# =================

# ARGUMENTOS POSICIONAIS E ARGUMENTOS NOMEADOS

def dados_pessoais(nome, sobrenome, idade, sexo):
    print("Nome: {}\nSobrenome: {}\nIdade: {}\nSexo: {}"
            .format(nome, sobrenome, idade, sexo))

dados_pessoais("Cláudio", sobrenome="Rogério", idade=30, sexo=True)
# dados_pessoais(idade=30,
#                 sexo=True,
#                 sobrenome="Carvalho",
#                 nome="Cláudio"
#                 )


Tags curso, python, função, parâmetro, argumento, argumento posicional, argumento nomeado, blog

Comentários

comments powered by Disqus