Pular para o conteúdo

Módulos

Introdução

“Um módulo é um arquivo Python contendo definições e instruções. O nome do arquivo é o módulo com o sufixo .py adicionado. Dentro de um módulo, o nome do módulo (como uma string) está disponível na variável global name”.

Fonte: https://docs.python.org/pt-br/3/tutorial/modules.html

  • Um módulo é um arquivo Python contendo definições e sentenças.
  • Módulos são arquivos de código Python cuja interface pode ser importada por outros módulos.
  • Um módulo pode conter tanto instruções executáveis quanto definições de funções e classes.
  • Um pacote é uma coleção de módulos.
  • Dentro do módulo, é possível ver o nome do módulo usando o comando “print(__name__)”.

Exemplos

Considere o arquivo modulo.py, mostrado abaixo, com duas funções: fatorial() e fibonacci().

# Calcula fatorial de n
def fatorial(n):
   i = 1
   fat = 1
   while i < n + 1:
      fat = fat * i
      i = i + 1
   return fat

# Imprime os termos da série de Fibonacci menores que n
def fibonacci(n):
   a, b = 0, 1
   while a < n:
      print(a)
      a, b = b, a+b

Para chamar as duas funções acima em um outro arquivo, basta usar o comando import. Considere o arquivo teste.py abaixo.

import modulo
fat = modulo.fatorial(5)
print("O fatorial de 5 é", fat)
print("Os termos da série de Fibonacci menores que 20:")
modulo.fibonacci(20)

É também possível especificar as funções que precisam ser importadas. Neste caso, não há necessidade de usar o prefixo modulo antes das funções.

from modulo import fatorial, fibonacci
fat = fatorial(5)
print("O fatorial de 5 é", fat)
print("Os termos da série de Fibonacci menores que 20:")
fibonacci(20)

A saída do programa (nos dois casos) é:

O fatorial de 5 é 120
Os termos da série de Fibonacci menores que 20:
0
1
1
2
3
5
8
13

O uso do comando “print(__name__)” no arquivo modulo.py tem como resposta “modulo”. O uso do comando “print(__name__)” no arquivo teste.py tem como resposta “__main__”. O termo “__main__” indica o nível superior onde o código é executado.

O exemplo abaixo usa a função dir() para listar todas as funções e variáveis do módulo importado e depois verifica o nome e a localização do módulo.

import modulo
print(dir(modulo))
print("Nome do modulo =", modulo.__name__)
print("Localização do modulo =", modulo.__file__)

A resposta do programa é:

[testes] python teste.py
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'fatorial', 'fibonacci']
Nome do modulo = modulo
Localização do modulo = /home/morganna/Área de Trabalho/testes/modulo.py

Bibliotecas

  • Uma biblioteca é um conjunto de módulos.
  • A biblioteca padrão Python é um conjunto de módulos disponíveis para importação (Veja https://docs.python.org/pt-br/3/library/). Por exemplo: O módulo datetime fornece as classes para manipulação de datas e horas; o módulo math fornece acesso às funções matemáticas definidas pelo padrão C; o módulo string possui operações comuns de strings; o módulo csv fornece funções que permitem a leitura e a escrita de arquivos CSV; o módulo os fornece diversas interfaces de sistema operacional; etc.