Мемо Python
Опубликовано 19 November 2023
Установить Python на Windows
Запуск Python
cd mon_projet
python -m venv mon_venv
source mon_venv/bin/activate
# Sur windows
mon_venv\Scripts\activate
deactivate
требование установки
pip install -r requirements.txt
инициация
Паттерны проектирования GoF на Python
Шаблоны проектирования GoF представляют собой набор из 23 шаблонов проектирования, которые были описаны в книге "Design Patterns: Elements of Reusable Object-Oriented Software".
| имя | Описание |
|---|---|
Фабричный метод |
Создаёт объекты, не указывая точный класс для создания. |
Абстрактная фабрика |
Создай семейства связанных или зависимых объектов без указания их конкретного класса. |
Строитель |
Разделяет построение сложного объекта от его представления, чтобы тот же процесс построения мог создавать разные представления. |
Прототип |
Создайте новые объекты, копируя существующий прототип. |
Одиночка |
Ограничивает создание экземпляра класса до одного объекта. |
адаптер |
Преобразует интерфейс класса в другой интерфейс, ожидаемый клиентом. |
Бридж |
Разделяет абстракцию от её реализации, чтобы обе могли варьироваться независимо. |
Композит |
Составьте объекты в древовидных структурах для представления иерархий часть-целое. |
Декоратор |
Динамически прикрепляйте дополнительные обязанности к объекту. |
фасад |
Обеспечивает единый интерфейс для набора интерфейсов в подсистеме. |
Приспособленец |
Снижает стоимость создания и использования легких объектов. |
Прокси |
Предоставляет замену или заполнитель для другого объекта, чтобы контролировать доступ к нему. |
Цепочка обязанностей |
Позволяет более чем одному объекту обрабатывать запрос. |
Команда |
Инкапсулирует запрос в объект, позволяя настраивать клиенты с различными запросами, очередями или журналами, и поддерживать отменяемые операции. |
Интерпретатор |
Дай представление грамматики языка и используй это представление для интерпретации предложений на этом языке. |
итератор |
Предоставляет способ последовательно обходить элементы совокупного объекта, не раскрывая его внутреннее представление. |
Посредник |
Позволяет уменьшить сложные зависимости между объектами, заставляя их взаимодействовать только через объект‑посредник. |
Мементо |
Предоставляет возможность восстановить объект в его предыдущее состояние (без нарушения инкапсуляции). |
Наблюдатель |
Определяет зависимость один‑ко‑многим между объектами так, что при изменении состояния одного объекта все его зависимости автоматически уведомляются и обновляются. |
Государство |
Позволяет объекту изменять своё поведение при изменении его внутреннего состояния. |
Стратегия |
Определяет семейство алгоритмов, инкапсулирует каждый из них и делает их взаимозаменяемыми. |
Шаблонный метод |
Определяет скелет алгоритма в методе, откладывая некоторые шаги на подклассы. |
Посетитель |
Позволяет определить новую операцию для выполнения над структурой объектов, не изменяя классы объектов, на которых она работает. |
Функциональное программирование
Библиотека |
URL |
Описание |
PyMonad |
PyMonad — это реализация монодных структур данных в Python, основанная на языках программирования, таких как Haskell и F#, с реализациями для наиболее часто используемых типов монод в функциональном программировании.https://www.miguelfarrajota.com/2021/06/monads-in-python-with-pymonad/[статья] |
|
PyFunctional |
PyFunctional — это библиотека Python для функционального программирования, которая предоставляет инструменты для работы с чистыми функциями и итерируемыми. |
|
Toolz |
Toolz — это библиотека Python для функционального программирования, которая предоставляет инструменты для работы с чистыми функциями и итерируемыми объектами. |
|
Fn.py |
Fn.py — это библиотека Python для функционального программирования, которая предоставляет инструменты для работы с чистыми функциями и итерируемыми объектами. |
|
Кокос |
Кокос добавляет несколько функций в Python для функционального программирования, включая сопоставление с образцом.https://stackoverflow.com/questions/11909681/are-there-pattern-matching-functions-in-python-like-this[разговор sof] |
побочные эффекты
циклы
# impérative way
result = []
for i in inputs:
x = f(g(i))
result.append(x)
# idiomatic way
result = map(comp(f,g), inputs)