Executando Python

Referência :
cd mon_projet

python -m venv mon_venv

source mon_venv/bin/activate

# Sur windows
mon_venv\Scripts\activate

deactivate

requisito de instalação

pip install -r requirements.txt

Padrões de Projeto do GoF em Python

Os design patterns do GoF são um conjunto de 23 design patterns que foram descritos no livro "Design Patterns: Elements of Reusable Object-Oriented Software".

Table 1. Esta é uma lista dos padrões de projeto do GoF

Nome

Descrição

Método Factory

Crie objetos sem especificar a classe exata a ser instanciada.

Abstract Factory

Crie famílias de objetos relacionados ou dependentes sem especificar sua classe concreta.

Construtor

Separa a construção de um objeto complexo da sua representação de modo que o mesmo processo de construção possa criar diferentes representações.

Protótipo

Cria novos objetos ao copiar um protótipo existente.

Singleton

Restringe a instanciação de uma classe a um único objeto.

Adaptar

Converte a interface de uma classe em outra interface que o cliente espera.

Ponte

Desacople uma abstração de sua implementação para que os dois possam variar independentemente.

Composto

Compõe objetos em estruturas de árvore para representar hierarquias de parte-todo.

Decorador

Anexe dinamicamente responsabilidades adicionais a um objeto.

fachada

Fornece uma interface unificada a um conjunto de interfaces em um subsistema.

Peso leve

Reduz o custo de criação e uso de objetos leves.

Proxy

Fornece um substituto ou um espaço reservado para outro objeto para controlar o acesso a ele.

Cadeia de Responsabilidade

Permite que mais de um objeto trate uma solicitação.

comando

Encapsula uma solicitação em um objeto, permitindo assim parametrizar clientes com diferentes solicitações, filas ou logs, e apoiar operações anuláveis.

Intérprete

Dá uma representação da gramática de uma língua e usa essa representação para interpretar frases nessa língua.

Iterator

Fornece um meio de percorrer sequencialmente os elementos de um objeto agregado sem expor sua representação subjacente.

Mediador

Permite reduzir as dependências complexas entre os objetos fazendo-os comunicar apenas por meio de um objeto mediador.

Memento

Fornece a capacidade de restaurar um objeto ao seu estado anterior (sem violar o encapsulamento).

Observe

Define uma dependência um-para-muitos entre objetos de forma que quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente.

Estado

Permite que um objeto altere seu comportamento quando seu estado interno muda.

Estratégia

Define uma família de algoritmos, encapsula cada um deles e os torna intercambiáveis.

Método Modelo

Define o esqueleto de um algoritmo em um método, delegando algumas etapas às subclasses.

Visitante

Permite definir uma nova operação a ser realizada numa estrutura de objetos, sem alterar as classes dos objetos nos quais ela opera.

Programação funcional

Biblioteca

URL

Descrição

PyMonad

https://github.com/jasondelaat/pymonad

PyMonad é uma implementação de estruturas de dados monádicas em Python baseada em linguagens de programação como Haskell e F# com implementações para os tipos de monads mais comumente usados em programação funcional.https://www.miguelfarrajota.com/2021/06/monads-in-python-with-pymonad/[artigo]

PyFunctional

https://github.com/EntilZha/PyFunctional/

PyFunctional é uma biblioteca Python para programação funcional que fornece ferramentas para trabalhar com funções puras e iteráveis.

Toolz

https://toolz.readthedocs.io/en/latest/

Toolz é uma biblioteca Python para programação funcional que fornece ferramentas para trabalhar com funções puras e iteráveis.

Fn.py

https://github.com/kachayev/fn.py

Fn.py é uma biblioteca Python para programação funcional que fornece ferramentas para trabalhar com funções puras e iteráveis.

coco

https://coconut-lang.org/

Coconut adiciona várias funcionalidades ao Python para programação funcional, incluindo o pattern matching.https://stackoverflow.com/questions/11909681/are-there-pattern-matching-functions-in-python-like-this[conversa sof]

efeitos colaterais

laços

# impérative way
result = []
for i in inputs:
    x = f(g(i))
    result.append(x)

# idiomatic way
result = map(comp(f,g), inputs)

Articles connexes