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 .py
extensã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.py
e 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_rate
Linguagem 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 import
instrução.
A import
declaraçã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 import
instrução:
import module_name
Linguagem de código: Python ( python )
Por exemplo, para usar o pricing
módulo no main.py
arquivo, use a seguinte instrução:
import pricing
Linguagem 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.py
arquivo. 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 pricing
módulo no main.py
arquivo:
# 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.0
Linguagem de código: Python ( python )
2) importar <module_name> como new_name
Se não quiser usar o pricing
como identificador no main.py
, você pode renomear o nome do módulo para outro da seguinte maneira:
import pricing as selling_price
Linguagem de código: Python ( python )
E então você pode usar o selling_price
como 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, fn2
Linguagem 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 pricing
módulo:
# main.py
from pricing import get_net_price
Linguagem de código: Python ( python )
e use a get_net_price()
função do pricing
mó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 import
instruçã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 pricing
mó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 import
instruçã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.py
e defina a get_tax()
função:
# product.py
def get_tax(price):
return price * 0.1
Linguagem de código: Python ( python )
Ambos os módulos product
e pricing
têm a get_tax()
função. Porém, a get_tax()
função do product
módulo possui apenas um parâmetro, enquanto a get_tax()
função do pricing
módulo possui dois parâmetros.
Segundo, importe todos os objetos dos módulos pricing
e product
e 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 product
módulo substitui a get_tax
função () do pricing
módulo, você obtém o tax
valor 10.
Resumo
- Um módulo é um arquivo de código-fonte Python com a
.py
extensã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
import
instrução.