CodeGym /Cursos /Python SELF PT /Importação de módulos

Importação de módulos

Python SELF PT
Nível 19, Lição 0
Disponível

1.1 Introdução aos módulos

Um módulo em Python é um arquivo com extensão .py que contém código. Os módulos permitem dividir um código grande em partes menores e manejáveis. Cada módulo pode conter funções, classes e variáveis, e também executar algum código ao ser importado.

Exemplo de um módulo simples

Vamos criar um módulo mymodule.py:


# mymodule.py

def greet(name):
    return f"Hello, {name}!"
            
pi = 3.14159
        

Agora, esse módulo pode ser importado e utilizado em outro arquivo.

1.2 Importar módulos

Python fornece várias maneiras de importar módulos. Vamos examinar cada uma delas.

Importação inteira do módulo

A sintaxe geral para esta operação é:


import modulo

Este método importa o módulo inteiro, e você pode usar suas funções e variáveis especificando o nome do módulo.


import modulo

print(modulo.greet("Alice"))  # Saída: Hello, Alice!
print(modulo.pi)  # Saída: 3.14159
        

Já fizemos algo parecido com o módulo math, lembra?


import math

print(math.ceil(13 / 7))  # arredondamento para cima
print(math.floor(13 / 7))  # arredondamento para baixo
        

Importar elementos específicos do módulo

Você pode importar não tudo do módulo, mas apenas alguns de seus elementos. A sintaxe geral para esta operação é:


from modulo import func, var

Este método importa apenas funções, classes ou variáveis específicas do módulo, permitindo usá-las sem especificar o nome do módulo.


from mymodule import greet, pi

print(greet("Bob"))  # Saída: Hello, Bob!
print(pi)  # Saída: 3.14159
        

Importar módulo com pseudônimo

A sintaxe geral para esta operação é:


import modulo as alias

Este método permite importar um módulo e atribuir-lhe outro nome, o que pode ser útil para encurtar nomes de módulos longos ou resolver conflitos de nomes.


import mymodule as mm

print(mm.greet("Charlie"))  # Saída: Hello, Charlie!
print(mm.pi)  # Saída: 3.14159
        

Importar todos os elementos do módulo

A sintaxe geral para esta operação é:


from modulo import *

Este método importa todas as funções, classes e variáveis do módulo, permitindo usá-las sem especificar o nome do módulo. No entanto, o uso deste método não é recomendado, pois pode causar conflitos de nomes e dificultar a leitura do código.


from mymodule import *

print(greet("Dave"))  # Saída: Hello, Dave!
print(pi)  # Saída: 3.14159
        

1.3 Sob o capô do processo de importação

Ordem de busca de módulos

Quando você importa um módulo, Python o procura em uma ordem específica:

  1. Diretório atual: O Python procura primeiro o módulo no diretório atual de onde o script foi executado.
  2. Variável de ambiente PYTHONPATH: Se o módulo não for encontrado no diretório atual, o Python procura nos diretórios especificados na variável de ambiente PYTHONPATH.
  3. Diretórios padrão: Se o módulo ainda não for encontrado, o Python procura nos diretórios padrão, como os especificados em sys.path.

Exemplo:


import sys

for path in sys.path:
    print(path)
        

Importação local e global

Você pode importar módulos tanto no nível global (no início do arquivo) quanto no nível local (dentro de uma função ou método).

Importação global

A importação global é feita no início do arquivo e torna o módulo importado acessível em todo o arquivo.


import math

def calculate_circle_area(radius):
    return math.pi * radius ** 2
        

Importação local

A importação local é feita dentro de uma função ou método e torna o módulo importado acessível apenas nessa função ou método.


def calculate_square_root(x):
    import math
    return math.sqrt(x)
    
print(calculate_square_root(16))
        

A importação local pode ser útil para reduzir o tempo de carregamento do módulo ou para evitar conflitos de nomes.

1.4 Importação dinâmica

A importação dinâmica permite importar módulos durante a execução do programa. Isso pode ser útil quando é necessário importar módulos com base na entrada do usuário ou outras condições dinâmicas.

A sintaxe geral para esta operação é:


module = __import__("modulo")

Vamos, por exemplo, importar o módulo math dessa maneira.


module_name = "math"
module = __import__(module_name)
print(module.sqrt(16))  # Saída: 4.0

Trabalhar com o código subsequente é semelhante ao uso de import as, quando o módulo math é atribuído ao pseudônimo module.

1.5 Acesso a atributos de módulo usando a função getattr

A função getattr permite acessar dinamicamente atributos de um módulo (ou qualquer objeto). Ela pode ser útil em casos onde os nomes de atributos são desconhecidos antecipadamente ou podem mudar durante a execução do programa.

Sintaxe da função getattr:


getattr(object, name, default = None)

Onde object é o objeto do qual se deseja obter o atributo, name é uma string contendo o nome do atributo, e default é o valor retornado caso o atributo com o nome especificado não exista. O valor padrão para o parâmetro default é None.

Exemplo de uso da função getattr:


import math

# Obtemos o atributo sqrt do módulo math
sqrt_function = getattr(math, 'sqrt')

print(sqrt_function(25))  # Saída: 5.0

# Tentamos obter um atributo inexistente, retornando o valor padrão
non_existent_attr = getattr(math, 'non_existent', 'default_value')

print(non_existent_attr)  # Saída: default_value
        

Neste exemplo, usamos a função getattr para obter a função sqrt do módulo math, e então chamamos essa função para calcular a raiz quadrada de 25. Caso o atributo com o nome especificado não exista, é retornado o valor padrão default_value.

2
Tarefa
Python SELF PT, nível 19, lição 0
Bloqueado
Importar elementos de um módulo
Importar elementos de um módulo
2
Tarefa
Python SELF PT, nível 19, lição 0
Bloqueado
Importação dinâmica de módulo
Importação dinâmica de módulo
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION