Aula 14 – Python – Pacotes – Packages

More videos
Views
   

Pacotes ou python packages

Pacotes em python

Pacotes em python

Voltar para página principal do blog

Todas as aulas desse curso

Aula 13                 Aula 15

Na aula passada vimos o que são módulos.

Segundo a documentação, um módulo consiste de um único arquivo.

Antes de começar pra valer, quero deixar meu link de afiliados na Hostinger, tá valendo a pena, dêem uma olhada: Hostinger

Dêem um joinha 👍 na página do Código Fluente no Facebook
Facebook

Meu link de referidos na digitalocean pra vocês.

Quem se cadastrar por esse link, ganha $100.00 dólares de crédito na digitalocean:

Digital Ocean

Esse outro é da one.com:

One.com

Agora vamos entender o que são pacotes.

Pacotes são módulos também. Eles são apenas embalados de forma diferente.

Eles são formados pela combinação de um diretório mais o arquivo __init__.py.

Eles são módulos que podem conter outros módulos, isto é, uma coleção de módulos em diretórios que fornecem uma hierarquia de pacotes.

Em sua definição precisa, um módulo é um objeto na memória de um interpretador Python, geralmente criado pela leitura de um ou mais arquivos no disco.

Módulos e Pacotes é a maneira do Python organizar e estruturar códigos.

Um pacote é uma coleção de módulos em uma pasta. O nome do pacote é o nome da pasta.

Pacotes são identificados pelo interpretador pela presença de um arquivo com o nome “__init__.py“.

O arquivo “__init__.py” pode ser vazio ou conter algum código de inicialização do pacote ou definir uma variável chamada __all__, com uma lista de módulos do pacote que serão importados quando for usado “*“.

Sem o arquivo __init__.py, o Python não identifica a pasta como um pacote válido.

Os dois __init__.py do exemplo dessa aula são arquivos vazios, tanto o do pacote ecommerce como o do pacote payments.

Veja abaixo a seguinte estrutura de pastas:

parent_directory/
    main.py
    ecommerce/
        __init__.py
        database.py
        products.py
        payments/
            __init__.py
            paypal.py
            authorizenet.py

Crie esses arquivos nessa hierarquia de pastas: parent_directory/main.py


"""Módulo principal.
"""
import ecommerce.products
from ecommerce.payments.paypal import PayPal

def main():
    """Função principal da aplicação.
    """
    product = ecommerce.products.Product()
    print(product)

    PayPal()


if __name__ == "__main__":
    main()

parent_directory/ecommerce/products.py

#Um ponto só no import, porque o database.py tá na mesma pasta
from .database import Database

class Product:
    '''Essa é a classe produto'''
    database = Database()
    
    if database:
        print("Eu importei um database")
    
    def __str__(self):
        return str("Eu sou um produto!")

parent_directory/ecommerce/database.py


class Database: # the database implementation
    def __str__(self):
        return str("Eu sou um database!")

database = None

def initialize_database():
    global database

database = Database()

Nós adiamos a criação do banco de dados até que seja realmente necessário chamando a função initialize_database para criar a variável do módulo database.

parent_directory/ecommerce/payments/authorizenet.py


class Authorizenet:
    '''Essa é a classe Authorizenet'''
    pass

parent_directory/ecommerce/payments/paypal.py


from ..database import Database

class PayPal:
    '''Essa é a classe PayPal'''
    database = Database()
    if database:
    	print("Eu sou o paypal do módulo payments, eu importei e instanciei um database")

O uso do comando pass é apenas para não precisar definir uma classse ou função, como aqui são apenas exemplos, não queremos que o python reclame pelo fato de definir uma classe ou função e não fazer nada dentro delas.

O pass serve literalmente para deixar passar.

Veja como os imports dos pacotes e seus módulos funcionaram.

Através dos prints dos códigos acima, dá para entender como funciona a hierarquia de pastas e módulos na estrutura mostrada como exemplo.

É isso, na próxima aula veremos a biblioteca padrão do python.

Voltar para página principal do blog

Todas as aulas desse curso

Aula 13                 Aula 15

Aproveito para deixar meu link de afiliados na Hostinger, tá valendo a pena, dêem uma olhada: Hostinger

Dêem um joinha 👍 na página do Código Fluente no Facebook
Facebook

Esse é meu link de referidos na digitalocean pra vocês.

Quem se cadastrar por esse link, ganha $100.00 dólares de crédito na digitalocean:

Digital Ocean

Esse outro link é da one.com:

One.com

Obrigado, até a próxima e bons estudos. 😉

(Visited 209 times, 1 visits today)
About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>