Módulos Python

Resumo : neste tutorial, você aprenderá sobre módulos Python, como importar objetos de um módulo e como desenvolver seus módulos.

Introdução aos módulos Python

Um módulo é um software que possui uma funcionalidade específica. Um módulo Python é um arquivo que contém código Python.

Por exemplo, ao construir uma aplicação de carrinho de compras, você pode ter um módulo para cálculo de preços e outro módulo para gerenciamento de itens no carrinho. Cada módulo é um arquivo de código-fonte Python separado.

Um módulo possui um nome especificado pelo nome do arquivo sem a .pyextensão. Por exemplo, se você tiver um arquivo chamado pricing.py, o nome do módulo será pricing.

Escrevendo módulos Python

Primeiro, crie um novo arquivo chamado pricing.pye adicione o seguinte código:

# pricing.py

def get_net_price(price, tax_rate, discount=0):
    return price * (1 + tax_rate) * (1-discount)


def get_tax(price, tax_rate=0):
    return price * tax_rateLinguagem de código:  Python  ( python )

O módulo de precificação possui duas funções que calculam o preço líquido e o imposto a partir do preço de venda, alíquota do imposto e desconto.

Importando objetos de módulo

Para usar objetos definidos em um módulo de outro arquivo, você pode usar a importinstrução.

A importdeclaração tem várias formas que discutiremos nas próximas seções.

1) importar <module_name>

Para usar objetos definidos em um módulo, você precisa importar o módulo usando a seguinte importinstrução:

import module_nameLinguagem de código:  Python  ( python )

Por exemplo, para usar o pricingmódulo no main.pyarquivo, use a seguinte instrução:

import pricingLinguagem de código:  Python  ( python )

Quando você importa um módulo, o Python executa todo o código do arquivo correspondente. Neste exemplo, Python executa o código do pricing.pyarquivo. Além disso, Python adiciona o nome do módulo ao módulo atual.

Este nome de módulo permite acessar funções, variáveis, etc. do módulo importado no módulo atual. Por exemplo, você pode chamar uma função definida no módulo importado usando a seguinte sintaxe:

module_name.function_name()Linguagem de código:  Python  ( python )

A seguir mostra como usar a get_net_price()função definida no pricingmódulo no main.pyarquivo:

# main.py
import pricing


net_price = pricing.get_net_price(
    price=100,
    tax_rate=0.01
)

print(net_price)Linguagem de código:  Python  ( python )

Saída:

101.0Linguagem de código:  Python  ( python )

2) importar <module_name> como new_name

Se não quiser usar o pricingcomo identificador no main.py, você pode renomear o nome do módulo para outro da seguinte maneira:

import pricing as selling_priceLinguagem de código:  Python  ( python )

E então você pode usar o selling_pricecomo identificador em main.py:

net_price = selling_price.get_net_price(
    price=100,
    tax_rate=0.01
)Linguagem de código:  Python  ( python )

3) de <module_name> importar <nome>

Se quiser fazer referência a objetos em um módulo sem prefixar o nome do módulo, você poderá importá-los explicitamente usando a seguinte sintaxe:

from module_name import fn1, fn2Linguagem de código:  Python  ( python )

Agora, você pode usar as funções importadas sem especificar o nome do módulo assim:

fn1()
fn2()Linguagem de código:  Python  ( python )

Este exemplo importa a get_net_price()função do pricingmódulo:

# main.py
from pricing import get_net_priceLinguagem de código:  Python  ( python )

e use a get_net_price()função do pricingmódulo:

# main.py
from pricing import get_net_price

net_price = get_net_price(price=100, tax_rate=0.01)
print(net_price)Linguagem de código:  Python  ( python )

4) de <module_name> importe <name> como <new_name>: renomeie os objetos importados

É possível renomear um nome importado para outro usando a seguinte importinstrução:

from <module_name> import <name> as <new_name>Linguagem de código:  Python  ( python )

O exemplo a seguir renomeia a get_net_price()função do pricingmódulo para calculate_net_price()função:

from pricing import get_net_price as calculate_net_price

net_price = calculate_net_price(
    price=100,
    tax_rate=0.1,
    discount=0.05
)Linguagem de código:  Python  ( python )

5) from <module_name> import * : importa todos os objetos de um módulo

Para importar todos os objetos de um módulo, você pode usar a seguinte sintaxe:

from module_name import *Linguagem de código:  Python  ( python )

Esta importinstrução importará todos os identificadores públicos, incluindo variáveis , constantes , funções , classes , etc., para o programa.

Porém, não é uma boa prática porque se os módulos importados tiverem o mesmo objeto, o objeto do segundo módulo substituirá o primeiro. O programa pode não funcionar como você esperaria.

Vejamos o exemplo a seguir.

Primeiro, crie um novo arquivo chamado product.pye defina a get_tax()função:

# product.py
def get_tax(price):
    return price * 0.1Linguagem de código:  Python  ( python )

Ambos os módulos producte pricingtêm a get_tax()função. Porém, a get_tax()função do productmódulo possui apenas um parâmetro, enquanto a get_tax()função do pricingmódulo possui dois parâmetros.

Segundo, importe todos os objetos dos módulos pricinge producte use a get_tax()função:

from pricing import *
from product import *

tax = get_tax(100)
print(tax)Linguagem de código:  Python  ( python )

Como a get_tax()função do productmódulo substitui a get_taxfunção () do pricingmódulo, você obtém o taxvalor 10.

Resumo

  • Um módulo é um arquivo de código-fonte Python com a .pyextensão. O nome do módulo é o nome do arquivo Python sem a extensão.
  • Para usar objetos de um módulo, importe-os usando a importinstrução.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *