Forwarded from Zen of Python
Создание статического сайта с помощью Flask и его развертывание в Netlify
Если вы решили запустить информационный сайт или сайт, где не требуется взаимодействие с пользователем, то хорошим решением может оказаться использования связки Flask с Frozen-Flask и Netlify. Так у вас появится возможность не только быстро развернуть его сейчас, но и в будущем быстро и без труда превратить ваш сайт в полноценное веб-приложение.
В этой статье автор подробно рассказывает, как это сделать:
https://tprg.ru/AHy9
#flask #webdev
Если вы решили запустить информационный сайт или сайт, где не требуется взаимодействие с пользователем, то хорошим решением может оказаться использования связки Flask с Frozen-Flask и Netlify. Так у вас появится возможность не только быстро развернуть его сейчас, но и в будущем быстро и без труда превратить ваш сайт в полноценное веб-приложение.
В этой статье автор подробно рассказывает, как это сделать:
https://tprg.ru/AHy9
#flask #webdev
Forwarded from Zen of Python
5 ошибок при объявлении функций в Python
Для того, чтобы код было легко поддерживать и читать необходимо придерживаться определённых правил и стандартов. В противном случае вы можете усложнить жизнь не только себе, но и другим разработчикам, которые будут вынуждены работать с вашим кодом. Это касается и создания функций.
В этой статье содержатся 5 ошибок, которые нужно избегать для создания максимально читабельного, понятного и легко поддерживаемого кода:
https://tprg.ru/NysU
Для того, чтобы код было легко поддерживать и читать необходимо придерживаться определённых правил и стандартов. В противном случае вы можете усложнить жизнь не только себе, но и другим разработчикам, которые будут вынуждены работать с вашим кодом. Это касается и создания функций.
В этой статье содержатся 5 ошибок, которые нужно избегать для создания максимально читабельного, понятного и легко поддерживаемого кода:
https://tprg.ru/NysU
Forwarded from Python Lounge: работа и стажировки для программистов
Как писать хороший код на python?🤔📄
✅Умение правильно и хорошо писать код — это важный навык для python-разработчика. Как научится писать хороший код — вы узнаете из сегодняшней статьи. Говоря о „хорошем коде“ имеется в виду большое количество факторов с которыми вам предстоит познакомиться, чтобы писать правильный и "конвейерный" код.
Возможно, самый известный сборник этих факторов Python был написан Тимом Питерсом, давний участник языка и его группы новостей comp.lang.python.
Этот сборник также известен под названием «The Zen of Python» и в нём изложены следующие факторы „хорошего кода“.
👉🏻 The Zen of Python, by Tim Peters 👈🏻
· Beautiful is better than ugly — Красивое — лучше, чем уродливое
· Explicit is better than implicit — Явное лучше, чем неявное.
· Simple is better than complex — Простое лучше, чем сложное.
· Complex is better than complicated - Сложное лучше, чем запутанное.
· Flat is better than nested - Плоский лучше, чем вложенный.
· Sparse is better than dense - Редкое лучше, чем частое.
· Readability counts - Читаемость имеет значение.
· Special cases aren't special enough to break the rules - Особых случаев недостаточно, чтобы нарушать правила.
· Although practicality beats purity - Хотя практичность лучше чистоты.
· Errors should never pass silently - Ошибки никогда не должны замалчиваться.
· Unless explicitly silenced — Если только они не замалчиваются явно.
· In the face of ambiguity, refuse the temptation to guess – Перед лицом двусмысленности откажитесь от соблазна угадать.
· There should be one -- and preferably only one -- obvious way to do it. – Должен быть один - и желательно только один - очевидный способ сделать это.
· Although that way may not be obvious at first unless you're Dutch – Хотя поначалу этот способ может быть не очевиден, если вы не голландец.
· Now is better than never – Лучше сейчас, чем никогда.
· Although never is often better than *right* now – Хотя никогда не бывает лучше, чем прямо сейчас.
· If the implementation is hard to explain, it's a bad idea – Если реализацию сложно объяснить, это плохая идея.
· If the implementation is easy to explain, it may be a good idea – Если реализацию легко объяснить, это может быть хорошей идеей.
· Namespaces are one honking great idea -- let's do more of those! – Пространства имен - одна отличная идея - давайте сделаем их больше!
Эти факторы можно быстро заполучить просто написав в интерпретаторе
***
Без пониманий этих факторов ваш код будет непригодным для больших, и без того сложных проектов.
***
✅Умение правильно и хорошо писать код — это важный навык для python-разработчика. Как научится писать хороший код — вы узнаете из сегодняшней статьи. Говоря о „хорошем коде“ имеется в виду большое количество факторов с которыми вам предстоит познакомиться, чтобы писать правильный и "конвейерный" код.
Возможно, самый известный сборник этих факторов Python был написан Тимом Питерсом, давний участник языка и его группы новостей comp.lang.python.
Этот сборник также известен под названием «The Zen of Python» и в нём изложены следующие факторы „хорошего кода“.
👉🏻 The Zen of Python, by Tim Peters 👈🏻
· Beautiful is better than ugly — Красивое — лучше, чем уродливое
· Explicit is better than implicit — Явное лучше, чем неявное.
· Simple is better than complex — Простое лучше, чем сложное.
· Complex is better than complicated - Сложное лучше, чем запутанное.
· Flat is better than nested - Плоский лучше, чем вложенный.
· Sparse is better than dense - Редкое лучше, чем частое.
· Readability counts - Читаемость имеет значение.
· Special cases aren't special enough to break the rules - Особых случаев недостаточно, чтобы нарушать правила.
· Although practicality beats purity - Хотя практичность лучше чистоты.
· Errors should never pass silently - Ошибки никогда не должны замалчиваться.
· Unless explicitly silenced — Если только они не замалчиваются явно.
· In the face of ambiguity, refuse the temptation to guess – Перед лицом двусмысленности откажитесь от соблазна угадать.
· There should be one -- and preferably only one -- obvious way to do it. – Должен быть один - и желательно только один - очевидный способ сделать это.
· Although that way may not be obvious at first unless you're Dutch – Хотя поначалу этот способ может быть не очевиден, если вы не голландец.
· Now is better than never – Лучше сейчас, чем никогда.
· Although never is often better than *right* now – Хотя никогда не бывает лучше, чем прямо сейчас.
· If the implementation is hard to explain, it's a bad idea – Если реализацию сложно объяснить, это плохая идея.
· If the implementation is easy to explain, it may be a good idea – Если реализацию легко объяснить, это может быть хорошей идеей.
· Namespaces are one honking great idea -- let's do more of those! – Пространства имен - одна отличная идея - давайте сделаем их больше!
Эти факторы можно быстро заполучить просто написав в интерпретаторе
import this
После чего вы получите данный список.***
Без пониманий этих факторов ваш код будет непригодным для больших, и без того сложных проектов.
***
Forwarded from Pythonist.ru - образование по питону
Tips & Tricks. Приведение string к int
Рассказываем о методе int(), приводим примеры преобразования строк в целые числа.
Читать статью
#функции
Рассказываем о методе int(), приводим примеры преобразования строк в целые числа.
Читать статью
#функции
Forwarded from Pythonist.ru - образование по питону
Питонисты, школа программирования TechRocks, совместно с нашим каналом подготовила клевый курс PythonBoost для начинающих.
Мы переработали формат курса. Это комплексная программа, с теорией, большим количеством практических задач, тестов и онлайн-занятиями с преподавателем.
— Более 50 задач.
— Более 6 часов видео.
— 4 онлайн занятия с ментором, где разбираются сложные темы и домашние задания.
Курс стартует уже 8 февраля.
Посмотреть программу курса и записаться на него можно по ссылке:
https://school.techrocks.ru/pythonboost/?utm_source=telegram&utm_medium=pythonistru
По всем вопросам можно обращаться сюда: @techrocksschool_support
Мы переработали формат курса. Это комплексная программа, с теорией, большим количеством практических задач, тестов и онлайн-занятиями с преподавателем.
— Более 50 задач.
— Более 6 часов видео.
— 4 онлайн занятия с ментором, где разбираются сложные темы и домашние задания.
Курс стартует уже 8 февраля.
Посмотреть программу курса и записаться на него можно по ссылке:
https://school.techrocks.ru/pythonboost/?utm_source=telegram&utm_medium=pythonistru
По всем вопросам можно обращаться сюда: @techrocksschool_support
Forwarded from Zen of Python
Что такое метаклассы в Python?
Если вы хотите лучше понимать, как работает код в Python, то необходимо углубиться в его структуру. Мы знаем, что при объявлении
В этой статье максимально доступно даются ответы на эти и другие вопросы:
https://tprg.ru/iJ0Y
Если вы хотите лучше понимать, как работает код в Python, то необходимо углубиться в его структуру. Мы знаем, что при объявлении
класса
создаётся объект
. Но как он создаётся? Да и объявить класс
можно с помощью type
, которая вообще должна просто определять тип объекта
. Так как же всё это работает?В этой статье максимально доступно даются ответы на эти и другие вопросы:
https://tprg.ru/iJ0Y
Forwarded from Oh My Py
Шпаргалка по замечательному модулю fnmatch, который проверяет строки по шаблону ✨
Forwarded from Python Academy
Добавляем классу большую функциональность
На прошлой неделе мы объясняли декоратор
Зачем использовать. Статические методы делают код более читабельным и повторно используемым. Его также удобнее использовать для импорта по сравнению с обычными функциями, поскольку функцию не нужно отдельно импортировать.
В чем же разница?
На прошлой неделе мы объясняли декоратор
@classmethod
, а сейчас рассмотрим @staticmethod
. @staticmethod
можно воспринимать как метод, который "не знает, к какому классу относится". Он просто получает переданные аргументы, без неявного первого аргумента, и его определение не изменяется через наследование. Еще раз: статические методы прикреплены к классу лишь для удобства — и не могут менять состояние ни класса, ни его экземпляра.Зачем использовать. Статические методы делают код более читабельным и повторно используемым. Его также удобнее использовать для импорта по сравнению с обычными функциями, поскольку функцию не нужно отдельно импортировать.
В чем же разница?
@classmethod
используется в суперклассе для определения того, как метод должен вести себя, когда он вызывается разными дочерними классами. @staticmethod
используется, когда мы хотим вернуть объект, независимо от вызываемого дочернего класса.Forwarded from Python Academy
Делегирующие генераторы
Давайте создадим простенькую генераторную функцию
А также ещё одну генераторную функцию
Цикл, который можно написать в
Грубо говоря, такая конструкция является неким туннелем передачи данных туда и обратно. В нашей ситуации
#генераторы
Давайте создадим простенькую генераторную функцию
subgen
, которая будет возвращать числа от 0 до переданного аргумента.А также ещё одну генераторную функцию
delegator
, которая будет возвращать числа из итерируемого объекта source
, который передадим в качестве аргумента.Цикл, который можно написать в
delegator
, можно заменить всего лишь одной строчкой. То есть yield from
заменяет цикл for
, в котором только возвращаются значения через yield
.Грубо говоря, такая конструкция является неким туннелем передачи данных туда и обратно. В нашей ситуации
delegator
можно назвать делигирующим генератором, а subgen
подгенератором.#генераторы
Forwarded from Python Academy
Аннотации типов
Всем известно, что Python – язык с динамической типизацией. Аннотации типов нужны для того, чтобы повысить информативность исходного кода, но они никак не влияют на поведение программы.
Типы данных указывается через двоеточие после имени переменной после её создания. Для примера создадим словарь с числами и список, состоящий из значений этого словаря, а также функцию для сложения двух чисел.
Однако помните, что аннотации типов не влияют на ход исполнения программы, поэтому в ранее написаную функцию мы с таким же успехом можем передать и строки, хотя указывали целочисленный тип данных.
#типы_данных #аннотации
Всем известно, что Python – язык с динамической типизацией. Аннотации типов нужны для того, чтобы повысить информативность исходного кода, но они никак не влияют на поведение программы.
Типы данных указывается через двоеточие после имени переменной после её создания. Для примера создадим словарь с числами и список, состоящий из значений этого словаря, а также функцию для сложения двух чисел.
Однако помните, что аннотации типов не влияют на ход исполнения программы, поэтому в ранее написаную функцию мы с таким же успехом можем передать и строки, хотя указывали целочисленный тип данных.
#типы_данных #аннотации
Forwarded from Python Academy
Паттерн проектирования Singleton
Одиночка или же синглтон – это паттерн проектирования, описывающий объект, у которого имеется один единственный экземпляр.
Метод
В примере мы проверяем, есть ли значение у атрибута
То есть при вызове конструктора класса
#классы #паттерны
Одиночка или же синглтон – это паттерн проектирования, описывающий объект, у которого имеется один единственный экземпляр.
Метод
__new__
вызывается для создания экземпляра класса, перед вызовом __init__
. На вход первым аргументом метод принимает сам класс, а возвращать должен уже экземпляр (даже можно экземпляр и другого класса).В примере мы проверяем, есть ли значение у атрибута
instance
. Если нет, то присваиваем атрибуту экземпляр этого же класса. А если уже экземпляр создан, то просто его возвращаем.То есть при вызове конструктора класса
Singleton
, будет возвращаться один и тот же объект из памяти.#классы #паттерны
Forwarded from Python Academy
Превью из длинного текста
Допустим, у нас есть какой-то длинный текст в виде строки и надо сделать превью этого текста, например, для сайта. Первое, что приходит на ум – использовать слайсинг строк.
Но, как видите, текст оборвался на полуслове, поэтому такой вариант отпадает. Такую проблему хорошо решает метод
Первым аргументом передается строка, вторым указываем количество символов, которое должен содержать результат. Также третьим аргументом можно передать заготовку, которая будет вставляться в конце обрезанной строки.
#строки #textwrap
Допустим, у нас есть какой-то длинный текст в виде строки и надо сделать превью этого текста, например, для сайта. Первое, что приходит на ум – использовать слайсинг строк.
Но, как видите, текст оборвался на полуслове, поэтому такой вариант отпадает. Такую проблему хорошо решает метод
shorten
из модуля textwrap
. Первым аргументом передается строка, вторым указываем количество символов, которое должен содержать результат. Также третьим аргументом можно передать заготовку, которая будет вставляться в конце обрезанной строки.
#строки #textwrap
Forwarded from Python Academy
Использование списков в качестве стеков
Стек – абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO (last in – first out). В переводе с английского "последним пришёл – первым вышел".
Списки в Python имеют удобные встроенные методы, которых достаточно для реализации такой структуры данных. Для добавления элемента в конец стека используем метод
Программный вид стека применяется для обхода структур по типу графов и деревьев. При реализации рекурсивных функций также будет применяться стек, но в таком случае уже его аппаратный вид.
#списки #стек
Стек – абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO (last in – first out). В переводе с английского "последним пришёл – первым вышел".
Списки в Python имеют удобные встроенные методы, которых достаточно для реализации такой структуры данных. Для добавления элемента в конец стека используем метод
append
, для извлечения – pop
.Программный вид стека применяется для обхода структур по типу графов и деревьев. При реализации рекурсивных функций также будет применяться стек, но в таком случае уже его аппаратный вид.
#списки #стек
Forwarded from Python Academy
Легкий веб-фреймворк
Несмотря на свою минималистичность,
После запуска подобного примера можете перейти в браузере по адресу
#фреймворки #bottle
Bottle
– это быстрый, простой и легкий микро-веб-фреймворк WSGI
для Python. Он распространяется как единый файловый модуль и не имеет никаких зависимостей, кроме стандартной библиотеки Python.Несмотря на свою минималистичность,
Bottle
предоставляет довольно широкие возможности, которых на 100% хватает для мелких и средних проектов. Вот список основных возможностей: routing, templates, POST-routing, обработка форм, cookies и сервер.После запуска подобного примера можете перейти в браузере по адресу
localhost:5000/hello/world
и посмотреть на результат, полученный из всего пяти строк кода.#фреймворки #bottle
Forwarded from Python Academy
Создание процессов
Класс
При создании экземпляра
Очень важно ожидать завершения всех созданных дочерних процессов. Для этого можно воспользоваться удобной функцией
#процессы #multiprocessing
Класс
Process
из встроенного модуля multiprocessing
позволяет создавать процессы без прямого вызова функции fork
, про которую писали раньше на канале.При создании экземпляра
Proccess
необходимо передать функцию, которую требуется исполнить в отдельном дочернем процессе и аргументы этой функции. Процесс будет создан после вызова метода start
. Внутри метода start
будет вызван fork
и будет исполнена функция в отдельном процессе.Очень важно ожидать завершения всех созданных дочерних процессов. Для этого можно воспользоваться удобной функцией
join
.#процессы #multiprocessing
Forwarded from # pip install (Student B.)
Полное руководство по декораторам в Python
🎯 Telegram Чат: @python_scripts
🎯 Канал: @pip_install
Декораторы придают вашему коду лаконичную и понятную структуру. По этой причине большинство расширений Flask и многие другие пакеты в Python следуют одному и тому же шаблону и раскрывают основные части своей функциональности через декораторы.
1. Регистрация функции
https://python-scripts.com/decorators-one
2. Изменение поведения функции
https://python-scripts.com/decorators-function-behavior
3. Декораторы с аргументами
https://python-scripts.com/decorators-with-arguments
🎯 Telegram Чат: @python_scripts
🎯 Канал: @pip_install
Декораторы придают вашему коду лаконичную и понятную структуру. По этой причине большинство расширений Flask и многие другие пакеты в Python следуют одному и тому же шаблону и раскрывают основные части своей функциональности через декораторы.
1. Регистрация функции
https://python-scripts.com/decorators-one
2. Изменение поведения функции
https://python-scripts.com/decorators-function-behavior
3. Декораторы с аргументами
https://python-scripts.com/decorators-with-arguments
Forwarded from Библиотека питониста | Python, Django, Flask
Forwarded from Библиотека питониста | Python, Django, Flask