Introdução À Computação Usando Python p73-74
Introdução À Computação Usando Python p73-74
Módulo: dynamic.py
Nele, a função () é definida dentro de um programa em Python, assim como uma instrução de atribuição pode estar em um
programa. A definição real de f() depende da entrada informada pelo usuário em tempo de execução. Digitando cubo após o
aviso, a função f () é definida para ser a função cúbica:
»
Digite quadrado ou cubo: cubo
» f(3)
2
AVISO o . .
Primeiro Defina a Função, Depois a Use
Python não permite chamar uma função antes que ela seja definida, assim como uma variável não pode ser usada em uma expressão antes
que ela seja atribuída.
Sabendo disso, tente descobrir por que a execução desse módulo resultaria em um erro:
print(£(3))
def f(x):
return x**2 + 1
Resposta: quando um mddulo é executado, as instruges Python são executadas de cima para baixo. A instrução print (f(3) ) falhará
porque o nome f ainda não estava definido no momento de sua execução.
Haverá um erro quando executarmos esse módulo?
def g(x):
return f(x)
def fOx):
return x**2 + 1
Resposta: não, porque as funções f( ) e g( ) não são executadas quando o módulo é executado, são apenas definidas. Depois
que elas
forem definidas, elas poderdo ser executadas sem problemas.
Comentários
Os programas em Python deverão ser bem documentados por dois motivos:
A documentação para o desenvolvedor do programa e o mantenedor futuro é importante porque o código não documentado é mais
difícil de manter, mesmo pelo programador que o escreveu. Essa documentação é feita principalmente usando comentários escritos
pelo desenvolvedor da função logo em seguida ao programa.
Um comentário é qualquer coisa que vem após o simbolo # em uma linha. Veja como acrescentamos um comentário para
explicar a implementação da função f():
Módulo: ch3.py
, def f(x):
return x**2 +1 # £(x) deve ser avaliado como x*x + 1
O comentário — qualquer coisa que vem após # na linha — é ignorado pelo interpretador Python.
Embora os comentdrios sejam necessários, também ¢ importante ndo comentar demais. Os comentários não devem dificultar a
leitura do programa. O ideal é que seus programas utilizem nomes de varidvel significativos e simples, em um codigo bem
projetado, de modo que o programa seja autoexplicativo, ou quase isso. Isso é realmente mais fácil de conseguir em Python do que
na maioria das outras linguagens. Os comentdrios devem ser usados para identificar os principais componentes do programa e
explicar as partes mais complicadas.
Docstrings
As funções também devem ser documentadas para os usudrios da função. As funções embutidas que ja vimos até aqui possuem
uma documentagdo que pode ser vista usando a função help( ). Por exemplo:
>> help(len)
Help on built-in function len in module builtins:
len(...)
len(object) -> integer
Se usarmos help em nossa primeira função f (), surpreendentemente obteremos alguma documentação também.
> help(f)
Help on function f in module _main_:
f(x)
Porém, para obtermos algo mais útil, o desenvolvedor da função precisa incluirum comentário especial na definição da função, que
será apanhado pela ferramenta help(). Esse comentário, chamado de docstring, é uma string que deverá descrever o que a função
faz e deverá ser colocado diretamente abaixo da primeira linha de uma definição de função. Veja como incluiriamos a docstring
'retorna x**2+1" ànossa função f():
Módulo: ch3.py
4 def f(x):
'retorna x**2 + 1º
3 return x**2 +1 # calcula x**2 + 1 e retorna valor obtido
def hello(name):
"uma função hello personalizada’
2 print('Hello,' + name + * ')
Com as docstrings no Iugar, a função help()as usara como parte da documentagdo da função. Por exemplo, a docstring
‘retorna x**2+1' ¢ exibida quando se visualiza a documentagio para a função f():
>>> help(f)
Help on function f in module _main_:
f(x)
retorna x**2 + 1
>>> help(hello)
Help on function hello in module _main_:
hello(name)
uma funcdo hello personalizada
Problema Prático 3.11
Acrescente a docstring retorna a média de x e y à função média() e a docstring exibe os números negativos
contidos na lista lst à função negativos() dos Problemas Práticos 3.8 e 3.10. Verifique seu trabalho usando a
ferramenta de documentação help(). Você deverá receber, por exemplo:
>>> help(média)
Ajuda sobre a função média no módulo —main :
média(x, y)
retorna à média de x e y