Enviar um café pro programador

import - Como criar, importar e usar um Módulo em Python

Neste tutorial, vamos aprender a criar, importar e usar um módulo, através da keyword import.

Tutorial anterior: O que são Módulos em Python
Obter certificado do Curso de Python

Como Criar um Módulo

Vamos criar um módulo chamado calculadora.py, ou seja, um arquivo com esse nome e extensão.

Nele, vamos definir 4 funções:
  1. soma(x,y)
  2. subtracao(x,y)
  3. multiplicacao(x,y)
  4. divisao(x,y)

Código que já fizemos várias e várias vezes durante nosso Curso de Python na web.
Uma dica muitíssimo importante, para quando formos criar módulos, é comentar seu código.

Antes de toda função de um módulo, adicione um comentário sobre a função, dizendo o que ela faz, os parâmetros e seu retorno.

Isso ajuda outros programadores que forem usar seus módulos e você também. Nosso módulo calculadora.py ficará assim:


calculadora.py
# Esse módulo realiza as 4 operações matemáticas

# Recebe dois números e retorna a soma
def soma(x,y):
    return x+y

# Recebe dois números e retorna a diferença
def subtracao(x,y):
    return x-y

# Recebe dois números e retorna o produto
def multiplicacao(x,y):
    return x*y

# Recebe dois números e retorna a divisão do primeiro pelo segundo
def divisao(x,y):
    return x/y


Como Importar um Módulo: import

Colocou o código anterior em um arquivo chamado calculadora.py?
Agora salve esse arquivo, é seu módulo, seu código organizado, com funções prontas para serem usadas.


Agora abra um novo arquivo Python.
Para poder usar o módulo que criou, você vai usar a keyword import junto do nome do seu módulo (sem a extensão .py), bem no começo do código:

import calculadora

Seu arquivo calculadora.py deve estar na mesma pasta deste script que está programando, ok? E prontinho, para importar um módulo é só isso.

Ao fazer isso, é como se você estivesse 'jogando' todo o código de calculadora.py dentro desse seu novo script. Tudo que tá dentro do módulo, você vai poder usar como se estivesse direto no seu script.

Como Usar um Módulo

Agora que já criamos e importamos o módulo, precisamos aprender como usar as funções contidas naquele arquivo.

Quando queremos chamar uma função bar(), apenas digitamos:
bar() e pronto, ela roda, pois está naquele arquivo que você está escrevendo.



Mas se a função estiver em outro arquivo, ou seja, em um módulo, de nome fu.py você deve digitar:
fu.bar()

Ou seja, primeiro o nome do módulo, um ponto e o nome da função, ok?
Vamos agora criar um programa que importa esse módulo e usa suas funções.

import calculadora

while True:
    print("1. Soma")
    print("2. Subtração")
    print("3. Multiplicação")
    print("4. Divisão")
    op=int(input("Que operação deseja realizar: "))
    x=float(input("Primeiro numero: "))
    y=float(input("Segundo  numero: "))

    if op==1:
        print("Soma:", calculadora.soma(x,y))
    elif op==2:
        print("Subtração:", calculadora.subtracao(x,y))
    elif op==3:
        print("Multiplicação:", calculadora.multiplicacao(x,y))
    elif op==4:
        print("Divisão:", calculadora.divisao(x,y))
    else:
        print("Opção inválida,tente novamente")

Simples, não?

Nunca mais precisaremos escrever essas funções novamente, sempre que precisarmos usar elas, bastar dar um import nesse módulo e usar diretamente suas funções.

Quando um programador ou empresa vai iniciar seus projetos, eles nunca partem do zero. Quando vamos iniciar um novo programa, é certeza já termos algum código pronto, que pode ser reutilizado.

Por isso é importante salvar seus códigos, seus módulos, comentar, deixá-los bem organizados e fáceis de se ler e entender, pois não tenha dúvidas que vai usá-los novamente no futuro.

Importar Função de um Módulo: from modulo import function

Quando fizemos:
import calculadora

Importamos tudo, todo o código, todas as funções do módulo calculadora.py
Porém, alguns módulos que usaremos são simplesmente gigantes, com milhares e milhares de linhas.

Muitas vezes queremos utilizar apenas uma ou outra função desse módulo, e acabamos dando um import e importamos milhares de linhas de código para no script, sem necessidade alguma.

Isso deixa nosso programa mais lento e pesado.
Por isso, é melhor importarmos somente algumas funções específicas.

Para importarmos uma função function() de um módulo de nome modulo, basta fazermos
  • from modulo import function

Prontinho.
Agora é só usar function() direto (nem precisa fazer modulo.function() ).

4 comentários:

  1. Fantástico pra quem está começando... a calculadora é bastante didática quanto a compreensão do módulo

    ResponderExcluir
  2. Tentei importar um módulo chamada "pymysql" a partir do prompt do python no DOS e a partir do Pycharm. Não consegui e a mensagem recebida foi:

    ModuleNotFoundError: No module named 'pymysql'

    Alguma sugestão? Obrigado

    ResponderExcluir
    Respostas
    1. Você instalou o pymyqls?

      Excluir
    2. # Função para ordenar três números em ordem não-decrescente
      def ordenar_numeros(a, b, c):
      # Encontrar o menor número
      menor = min(a, b, c)

      # Encontrar o maior número
      maior = max(a, b, c)

      # Calcular o número do meio
      meio = (a + b + c) - menor - maior

      # Imprimir os números em ordem não-decrescente
      print(menor, meio, maior)

      # Entrada de dados do usuário
      num1, num2, num3 = map(float, input("Digite três números reais separados por espaços: ").split())

      # Chamar a função para ordenar e imprimir os números
      ordenar_numeros(num1, num2, num3)

      Excluir