Antes de prosseguir leia os artigos anteriores aqui.
No último post sobre funções com argumentos nomeados, eu mostrei como referenciar argumentos utilizando como base o nome designado a este argumento. Hoje vamos ver como utilizar valores padrões, ou pré-definidos, em um argumento.
Funções com Argumentos e Valores Padrões
Muitas vezes você precisa criar uma função quase idêntica a outra, a única diferença é que uma recebe argumentos enquanto a outra não. O Python nos oferece um recurso interessante para evitar a criar de duas funções com comportamentos similares. Os valores padrões fazem um argumento se tornar opcional. Vamos a um exemplo prático, precisamos de uma função que incremente um numero. Caso não especificado um "valor de incremento", o número será incrementado com o "valor de incremento" igual a um. Ou seja, o comportamento da função deve ser o seguinte:
Em resumo essa função deve somar dois numeros. Como podemos ver o segundo argumento é opcional, caso informado o primeiro número deve ser somado ao segundo, caso não seja informado o segundo número, o primeiro número deve ser somando a um valor fixo que, conforme especificado, é 1. Vamos ao código:Código:>>> incrementa(10) 11 >>> incrementa(2) 3 >>> incrementa(4,2) 6 >>> incrementa(7,10) 17
O valor padrão é definido na declaração da função. Ao declarar um argumento com um valor inicial (num=2) ele se torna opcional, podendo ou não ser especificado. Vamos a outro exemplo: Criar uma função que conte o numero de caracteres que uma frase tem. O argumento opcional é uma letra e, caso seja especificado, a função deve contar as ocorrências dessa letra:Código PHP:
def incrementa(num1, num2=1):
return num1+num2
Como podemos ver, eu iniciei o argumento letra como None. Ao inciar a função verifico se o valor padrão de letra foi alterado (if letra is None), caso negativo, eu conto o número de letras na frase. Caso a letra tenha sido especificado (else) eu conto o número de ocorrências da letra. Antes que alguém fale, eu sei que existem funções prontas que fazem isso, eu estou utilizando apenas como exemplo. Abaixo a execução desse código:Código PHP:
def conta_caracteres(frase, letra=None):
if letra is None:
cont = 0
for l in frase:
cont = cont + 1
else:
cont = 0
for l in frase:
if l == letra:
cont = cont + 1
return cont
Boa semana a todos e até a próxima...Código:>>> conta_caracteres('esta e uma frase') 16 >>> conta_caracteres('esta e uma frase', 'a') 3 >>> conta_caracteres('esta e uma frase', 'f') 1 >>> conta_caracteres('esta e uma frase', ' ') 3 >>>
[Curso de Python] Funções com Argumentos e Valores Padrões
21 de Julho de 2010, 0:00 - sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 183 vezes
0sem comentários ainda