Я тут заметил, что недавно выложил ссылку на пример по Абстрактной фабрике вместо ссылки на само описание паттерна. Исправляюсь:
https://refactoring.guru/ru/design-patterns/abstract-factory
#python #patterns #паттерны #ООП
https://refactoring.guru/ru/design-patterns/abstract-factory
#python #patterns #паттерны #ООП
refactoring.guru
Абстрактная фабрика
Абстрактная фабрика — это порождающий паттерн проектирования, который позволяет создавать семейства связанных объектов, не привязываясь к конкретным классам создаваемых объектов.
А теперь рассмотрим паттерн "Строитель" (Builder). Он полезен, когда вам нужно создать несколько видов сложных объектов. Конструирование этих объектов будет подразумевать схожие шаги, но реализация этих шагов будет разной для разных типов объектов.
Подробнее тут:
https://refactoring.guru/ru/design-patterns/builder
#python #patterns #паттерны #ООП
Подробнее тут:
https://refactoring.guru/ru/design-patterns/builder
#python #patterns #паттерны #ООП
refactoring.guru
Строитель
Строитель — это порождающий паттерн проектирования, который позволяет создавать сложные объекты пошагово. Строитель даёт возможность использовать один и тот же код строительства для получения разных представлений объектов.
Следующая статья описывает паттерн "Фабричный метод" (Factory method). Как следует из названия, речь пойдет о неком методе. Этот метод позволяет возвращать объекты с нужным поведением.
https://refactoring.guru/ru/design-patterns/factory-method
#python #patterns #паттерны #ООП
https://refactoring.guru/ru/design-patterns/factory-method
#python #patterns #паттерны #ООП
refactoring.guru
Фабричный метод
Фабричный метод — это порождающий паттерн проектирования, который определяет общий интерфейс для создания объектов в суперклассе, позволяя подклассам изменять тип создаваемых объектов.
Опрос с реального собеседования. Что будет выведено после исполнения кода?
#python #опрос #списки #аргументы
def tmp(a, b=[1,2,3]):
b.append(a)
return b
a = tmp(4)
b = tmp(5)
print(b)
#python #опрос #списки #аргументы
Объяснение с канала хитрый python про изменяемые объекты в параметрах функции по умолчанию, и про то, как делать правильно:
https://www.youtube.com/watch?v=TrKww0kmLk4
#python #хитрый_python #списки
https://www.youtube.com/watch?v=TrKww0kmLk4
#python #хитрый_python #списки
YouTube
Почему mutable умолчания в аргументах функций - плохо?
Одной из самых раздражающих ловушек в питоне, в которую попадают новички - это mutable значения по-умолчанию у именованных аргументов функции. Давайте разберемся, почему так происходит.
Я в Telegram - https://t.me/tricky_python
Канал создан при поддержке…
Я в Telegram - https://t.me/tricky_python
Канал создан при поддержке…
Про глубокие и неглубокие копии в python (на английском):
https://realpython.com/copying-python-objects/
#python #копирование #copy
https://realpython.com/copying-python-objects/
#python #копирование #copy
Realpython
How to Copy Objects in Python: Shallow vs Deep Copy Explained – Real Python
Understand the difference between shallow and deep copies in Python. Learn how to duplicate objects safely using the copy module and other techniques.
Про паттерн проектирования Прототип. Он позволяет вам создавать копии объектов из имеющихся объектов.
https://refactoring.guru/ru/design-patterns/prototype
#python #patterns #паттерны #ООП
https://refactoring.guru/ru/design-patterns/prototype
#python #patterns #паттерны #ООП
refactoring.guru
Прототип
Прототип — это порождающий паттерн проектирования, который позволяет копировать объекты, не вдаваясь в подробности их реализации.
Про то, как работает виртуальное окружение с канала Хитрый Python:
https://www.youtube.com/watch?v=qELk8D-pAos
#python #хитрый_python #виртуальное_окружение
https://www.youtube.com/watch?v=qELk8D-pAos
#python #хитрый_python #виртуальное_окружение
YouTube
Как устроено виртуальное окружение в python?
Когда мы набираем в командной строке python то запускается интерпретатор питона. Но откуда система знает, что именно запустить? Как python понимает, где искать библиотеки и за счет чего работает виртуальное окружение? Давайте разбираться.
Переменные окружения…
Переменные окружения…
👍1
Про паттерн проектирования Одиночка. Он позволяет вам иметь единственный глобальный объект с единственной же точкой доступа (новые объекты не могут быть созданы).
https://refactoring.guru/ru/design-patterns/singleton
#python #patterns #паттерны #ООП
https://refactoring.guru/ru/design-patterns/singleton
#python #patterns #паттерны #ООП
refactoring.guru
Одиночка
Одиночка — это порождающий паттерн проектирования, который гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа.
Про менеджеры контекса и методы enter, exit.
https://www.youtube.com/watch?v=e1d74l02MVc
#python #хитрый_python #менеджеры_контекста
https://www.youtube.com/watch?v=e1d74l02MVc
#python #хитрый_python #менеджеры_контекста
YouTube
Делаем безопасную перезапись файла с помощью менеджера контекста
Контекстные менеджеры - очень полезная штука в python. Давайте разберем использование context manager на примере atomic write. Т.е. если в процессе записи информации в файл произойдет ошибка, мы должны откатиться к предыдущей версии файла.
Я в Telegram …
Я в Telegram …
Еще видео с безопасной перезаписью файла.
https://www.youtube.com/watch?v=tMGf9GwjY6g
#python #хитрый_python #contextlib
https://www.youtube.com/watch?v=tMGf9GwjY6g
#python #хитрый_python #contextlib
YouTube
Делаем безопасную перезапись файла с использованием contextlib
В прошлый раз мы реализовали безопасную перезапись файла при помощи менеджера контекста на базе класса. Сейчас решим ту же задачу используя декоратор contextmanager из модуля contextlib стандартной библиотеки.
Реализуем Atomic Write при помощи класса - …
Реализуем Atomic Write при помощи класса - …
Про одну из оптимизаций - свертку констант:
https://www.youtube.com/watch?v=TpqAVEU0eZI
#python #хитрый_python #константы
https://www.youtube.com/watch?v=TpqAVEU0eZI
#python #хитрый_python #константы
YouTube
Constant folding: еще одна оптимизация в интерпретаторе python
Сегодня я хочу рассказать еще про одну оптимизацию - свертку констант или constant folding.
Interning: как python оптимизирует работу с памятью - https://www.youtube.com/watch?v=WpYXgsI7RKc
Я в Telegram - https://t.me/tricky_python
Канал создан при поддержке…
Interning: как python оптимизирует работу с памятью - https://www.youtube.com/watch?v=WpYXgsI7RKc
Я в Telegram - https://t.me/tricky_python
Канал создан при поддержке…
Продолжаем про паттерны проектирования. На очереди Адаптер. Этот паттерн позволяет создать класс-оболочку с требуемым интерфейсом (соответственно, для некого класса с неподходящим интерфейсом).
https://refactoring.guru/ru/design-patterns/adapter
#python #patterns #паттерны #ООП
https://refactoring.guru/ru/design-patterns/adapter
#python #patterns #паттерны #ООП
refactoring.guru
Адаптер
Адаптер — это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе.
Следующий структурный паттерн - Мост. Предположим у вас есть класс, который содержит некоторую абстракцию и реализацию. Проблема возникает тогда, когда обе эти составляющие необходимо часто менять. Тут-то и приходит на помощь паттерн Мост. Он позволяет разделить абстракцию и реализацию. Описание паттерна:
https://refactoring.guru/ru/design-patterns/bridge
#python #patterns #паттерны #ООП
https://refactoring.guru/ru/design-patterns/bridge
#python #patterns #паттерны #ООП
refactoring.guru
Мост
Мост — это структурный паттерн проектирования, который разделяет один или несколько классов на две отдельные иерархии — абстракцию и реализацию, позволяя изменять их независимо друг от друга.
🔥1