A diferença entre módulos e pacotes é que módulos são arquivos com código python
já pacotes são pastas que guardam vários módulos
Sobre módulos:
módulos são arquivos com extensão .py que guardam o código que queremos reutilizar, e para fazer isso nos importamos esse modulo no arquivos que queremos reutiliza-lo.
Códigos implementados dentro de módulos, recebem um namespace formado pelo nome do modulo + a união + o nome da estrutura de código
Por Exemplo - modulo a ser importado:
nome do arquivo: calculadora.py
def soma(n1,n2):
return n1+n2
def subtrai(n1,n2):
return n1-n2
Modulo onde importamos:
nome do arquivo: calculadora.py
import calculadora
resultado = calculadora.soma(1, 2)
caso a o arquivo calculadora.py estivesse dentro de uma pasta poderiamos importalo da seguinte maneira:
import pasta.calculadora.py
e se ela estivesse dentro de uma pasta que esteja dentro de outra pasta
import pasta.outrapasta.calculadora.py
o funcionamento é o mesmo
Sobre Pacotes:
Pacotes são pastas onde guardamos vários módulos com código python, um pacote deve ter um arquivo __init__.pyeste arquivo __init__.py deve importar para ele os modulos que a pasta contem, essa importação deve ser na forma:
nome do arquivo: __init__.py
nome do pacote: calculadora
from . import *
este ponto apos a palavra from significa que queremos importar tudo do diretorio atual para este arquivo.
E para usarmos este pacote basta fazermos o seguinte
nome do arquivo: escritorio.py
from calculadora import *
#ou
from calcualdora import algumModulo
a função import adiciona o simbolo do modulo importado a tabela de simbolos local
ex codigo de modulo ferramentas:
a = 10
b = 20
def soma():
return a+b
import ferramentas:
os simbolos do modulo ferramentas ficam disponiveis atraves da forma
ferramentas.simbolo
ou ferramentas.simbolo()
ex:
num = ferramentas.a
e
num2 = ferramentas.soma()
from ferramentas import *
todos os simbolos ficam assessiveis diretamente
ex:
num = a
e
num2 = soma()
from ferramentas import a as numero
importa o valor do simbolo a para um simbolo com nome numero
0 Comentários