Desenvolvimento - Python

Introdução ao Python - Parte 3

Neste terceiro artigo da série, Introdução ao Python, vamos aprender como utilizar as funções e módulos em nossos aplicativos Python.

por Fábio Rizzo Matos



Neste terceiro artigo da série, Introdução ao Python, vamos aprender como utilizar as funções e módulos em nossos aplicativos Python.

A primeira e a segunda parte desse tutorial se encontra disponível nesse site ou em meu site no endereço:

É interessante que você tenha visto a primeira e a segunda parte desse artigo para poder facilitar o seu entendimento.

4 - Funções / Módulos

4.1 - Usando Funções

Utilizamos funções quando precisamos executar um bloco de código diversas vezes, fazendo assim o reuso do código, e sendo assim alterar uma função usada uma dezena de vezes apenas uma única vez.

Vamos elevar um número ao quadrado. Veja exemplo:

>>> def eleva(x):
return x**2

Usando a função:

>>> eleva(3)
9

A utilização da sintaxe de uma função é:

def nome_função(parametro1,parametro2,....):
executa código com os parametros.

Como vimos é possível utilizar uma função sobre vários parâmetros. Veja:

>>> def elevadois(x,y):
return x**y

Executando a função:

>>> elevadois(3,3)
27

Nesse exemplo, nos elevamos x a y, passando dois parâmetros para a função.

Podemos também utilizar funções sobre textos e qualquer outro objeto do Python, não sendo necessariamente um cálculo. Veja:

>>> def mostra_mensagens(msg, quantidade):
for quantidades in range(quantidade):
print "%s %d" % (msg,quantidades)

Chamando a Função:

>>> mostra_mensagens("Mensagem Numero: ",3)
Mensagem Numero: 0
Mensagem Numero: 1
Mensagem Numero: 2

Podemos também criar funções com parâmetros pré-definidos, caso não informe nenhum valor a função. Vamos usar o exemplo acima e caso não coloque quantidade de mensagens, a função retorne 5 mensagens. Veja:

>>> def mostra_mensagens(msg,quantidade=5):
for quantidades in range(quantidade):
print "%s %d" % (msg,quantidades)

Chamando a função:

>>> mostra_mensagens("Mensagem Numero:")
Mensagem Numero: 0
Mensagem Numero: 1
Mensagem Numero: 2
Mensagem Numero: 3
Mensagem Numero: 4

Como não informamos a quantidade de mensagens ele uso o padrão, que é 5.

Podemos utilizar uma função que além de ter infinitos argumentos, gere variáveis com valores. Veja:

>>> def listadeargumentos(*argumentos, **bargumentos):
print "Argumentos: ", argumentos
print "Variaveis de Argumentos: ", bargumentos
print "=" * 85

Chamando a Função:

>>> listadeargumentos("fabio","rizzo",variavel1="variavel 01", variavel2="variavel 02")
Argumentos: ("fabio", "rizzo")
Variaveis de Argumentos: {"variavel2": "variavel 02", "variavel1": "variavel 01"}
=====================================================================================

Nesta função podemos perceber que quando queremos ter argumentos infinitos utilizamos *argumentos , utilizando sempre um * antes da declaração. Perceba, que geramos uma lista com os dados. E para utilização de argumentos infinitos em forma de dicionário use **argumentos, utilizando dois ** asteriscos.

4.2 - Usando Módulos

Quando desenvolvemos programas, temos que criar diversas funções e as vezes necessitamos de utiliza-las muitas vezes ao longo do programa. E para isso criamos arquivos com "pacotes" de funções e rotinas que importamos para dentro do nosso programa, fazendo assim reuso de código.

Vamos criar uma função que mostra o nosso nome:

>>> def mostra_nome(nome):
... print "O seu nome eh: ",nome
...
>>> mostra_nome("Fabio Rizzo")
O seu nome eh: Fabio Rizzo

Imagine se tivéssemos 15 arquivos onde seja necessário o uso dessa função? Ou queremos deixar o código mais "limpo", como fazemos?

Vamos colocar essa função dentro de um arquivo chamado funcoes.py. O arquivo vai ficar assim:

>>> def mostra_nome(nome):
... print "O seu nome eh: ",nome

Agora vamos importar o arquivo, veja abaixo:

>>> import funcoes
>>> funcoes.mostra_nome("Fabio Rizzo")
O seu nome eh: Fabio Rizzo

Depois de importado, utilizamos a seguinte sintaxe:

modulo.função

Porém, existem outras formas de importar um módulo. Veja só:

from funcoes import mostra_nome

Dessa forma falamos que vamos importar do módulo funções somente a função mostra_nome. Se importarmos mais nome, utilizaremos vírgula para separar as funções. Podemos usar apelidos como abaixo:

>>> import funcoes as func
>>> func.mostra_nome("Fabio Rizzo")
O seu nome eh: Fabio Rizzo

Fabio Rizzo Matos
www.fabiorizzo.com
fabio@fabiorizzo.com

Fábio Rizzo Matos

Fábio Rizzo Matos - Membro ativo da Comunidade Python/Zope e Plone, para qual escreve diversos artigos. Arquiteto de Software e Desenvolvedor, trabalha atualmente na ThreePointsWeb (contato@threepointsweb.com), empresa especializada em desenvolvimento e treinamentos Python, Zope e Plone, realizando treinamentos e consultorias em Plone. Mantenedor do site http://www.fabiorizzo.com além de responsável pela tradução de conteúdo.