Conteúdo[Esconder][Mostrar]
Esta palestra abrangerá os módulos e pacotes em Python.
Eles são uma maneira de organizar seu código na forma de arquivos e são realmente importantes se você pretende construir aplicativos web com Python
Módulos
Um módulo em Python é basicamente um arquivo com algum código python que usamos para organizar nosso código em arquivos. Pense nisso como seções em um supermercado. Quando você vai a um supermercado, há diferentes seções de frutas, legumes, produtos de limpeza, etc. Você não vê uma seção com todos os produtos.
É o mesmo conceito em programação. Em vez de escrever todo o nosso código com todas as funções e classes em main.py, dividimos nosso código em vários arquivos. Cada arquivo é referido como um módulo. Com isso, não apenas nosso código fica mais organizado e estruturado, mas também temos a capacidade de reutilizar nosso código. Vamos ver através de um exemplo.
Vamos definir duas funções para converter peso de libras para quilogramas e vice-versa.
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
Agora, podemos pegar essas duas funções e colocá-las em um módulo separado chamado “conversores”, e então ele pode ser importado para qualquer programa que precise dessas funções de conversor. Deixe-me mostrar-lhe como fazer isso.
Vamos abrir nosso painel de projeto e clicar com o botão direito do mouse no projeto e adicionar um novo arquivo. Vamos chamar este arquivo de “Converters.py”.
Agora copie o código do arquivo padrão e cole-o no “Converters.py”.
Com isso, limpamos nosso módulo principal e ele não está cheio de funções diferentes. À medida que escrevemos mais funções com classes, as colocamos em seus módulos correspondentes. Um módulo deve conter todas as funções e classes relacionadas. Agora, queremos importar o módulo de conversores para o nosso módulo de aplicativo. Para fazer isso, escreva import converters
na parte superior sem a extensão “.py”.
Podemos acessar os membros de um módulo usando um operador de ponto semelhante a métodos.
Vamos converter 70 kg em libras:
Há também outra sintaxe para importar módulos. Em vez de importar o módulo inteiro, podemos importar funções específicas desse módulo. Podemos digitar from Converters import
e pressione “control + espaço para mostrar a lista de funções disponíveis. Com isso, podemos chamar diretamente esta função.
Exercício
Aqui está o seu exercício.
Isso está relacionado a um exercício da palestra onde discutimos “para loops” onde escrevemos um programa para descobrir o maior número de uma lista
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
Este código atualmente não tem organização. Não temos funções ou módulos e o programa é escrito em um único arquivo. Isso é bom para programas pequenos, mas à medida que seus programas crescem, você precisa organizar adequadamente seu código em classes e módulos. Portanto, como parte deste exercício, quero que você escreva uma função, chame-a find_max
. Essa função deve receber uma lista e retornar o maior número dessa lista. Depois disso vá em frente e coloque esta função em um módulo separado, extraia-a daqui e coloque-a em um módulo chamado utils
. Este módulo deve conter um monte de funções utilitárias. Importe o utils
módulo no módulo atual e chame find_max
função. Por fim, obtenha o resultado e imprima-o no terminal.
Este exercício é um pouco desafiador, mas facilmente realizável.
Solução
Comece definindo uma função find_max
e adicione um parâmetro chamado números. Dentro desta função, escreva o algoritmo para encontrar o maior número em uma lista.
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
Salve este código em um arquivo “utils.py” como um módulo.
De volta ao nosso programa principal, basta importar o módulo por qualquer uma das duas sintaxes e simplesmente executar a lógica.
Uma coisa, eu preciso chamar sua atenção para o enfraquecimento max
. A razão disso é a max
é uma função embutida em Python e estamos redefinindo-a. Portanto, este é um alerta do Compilador Python que não podemos mais usar max como sua função interna.
Módulos embutidos em Python
O Python vem com uma biblioteca padrão que contém vários módulos para tarefas comuns, como enviar e-mails, trabalhar com data e hora, gerar valores e senhas aleatórios e assim por diante. Existem tantos módulos já embutidos no Python, o que significa que já existem muitas funcionalidades que podemos reutilizar. Você pode encontrar esses módulos SUA PARTICIPAÇÃO FAZ A DIFERENÇA.
PACK
Os pacotes são basicamente outra maneira de organizar nosso código em cima dos módulos. Um projeto real pode conter centenas ou até milhares de módulos e com o tempo nosso diretório ficará inchado com tantos arquivos. Portanto, uma abordagem melhor é organizar os módulos relacionados dentro de um pacote, o que torna o pacote um contêiner para vários módulos.
Um novo diretório é adicionado ao projeto e todos os módulos relacionados são adicionados a esse diretório. Como exemplo, pense em um shopping. Existem diferentes seções para roupas masculinas, femininas e infantis em um shopping que são como pacotes. Cada seção tem diferentes áreas para diferentes tipos de produtos como sapatos, camisetas e jaquetas. Pense nisso como módulos.
Vamos ver, como criar e usar pacotes em Python.
Primeiro, adicione um novo diretório do painel do projeto. Vamos chamá-lo de “eCommerce”. Este pacote conterá todos os módulos relacionados a um aplicativo de comércio eletrônico.
Ainda é um diretório vazio e para convertê-lo em um pacote, precisamos criar um arquivo especial nele. Adicione um novo arquivo python neste diretório e nomeie esse arquivo como “__init__”. É uma convenção especial em Python e quando o interpretador Python vê um arquivo com este nome em um diretório, ele trata este diretório como um pacote.
Também temos um método alternativo e conciso para criar um pacote. Basta clicar com o botão direito do mouse no painel do projeto e criar um pacote Python da lista. Nomeie-o como “eCommerce” e pronto. Ele criará automaticamente um diretório com um arquivo Python chamado “__init__”.
Agora, vamos criar um módulo no pacote e nomeá-lo “shipping”. Neste módulo, vamos criar uma função simples para calcular os custos de envio.
def calc_shipping():
print("calc_shipping")
Para acessar esta função em nosso módulo principal, temos que acessá-la através do pacote e-commerce. Mais uma vez temos dois métodos para importar este módulo.
No primeiro método, podemos importar o módulo inteiro e depois chamar uma função de forma independente assim:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
No entanto, com esta abordagem, chamar uma das funções para este módulo requer prefixá-lo com eCommerce.shipping.
Isso é muito verboso. Então, ao trabalhar com pacotes, geralmente usamos a segunda abordagem e usamos o from
declaração.
from eCommerce.shipping import calc_shipping
calc_shipping()
Se você tiver várias funções em um módulo, poderá importá-las em uma única linha usando vírgulas entre elas. Digamos que haja outra função para calcular o imposto em nosso módulo de frete. Isso será importado assim:
from eCommerce.shipping import calc_shipping, calc_tax
Você também pode importar módulos individuais e deixar funções para serem chamadas em um estágio posterior do programa. Vamos importar o envio do módulo e usar um operador de ponto para chamar a função calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
Embrulhar!
Pacotes e Módulos são extremamente importantes em Python. Especialmente, quando você quer trabalhar com um framework como o Django que é usado para construir Aplicativos da web com Python. Veremos o Django durante outro curso de Python.
Esta foi a última palestra convencional desta série. A próxima palestra irá se desviar do nosso formato usual e aprenderemos alguns casos de uso importantes em Python. Isso marcará o fim desta série e passaremos para nossa próxima série Python. Fique atento a isso.
Deixe um comentário