Python Nation🐍🇺🇦
2.84K subscribers
237 photos
2 files
158 links
Канал для всіх, хто вивчає Python: поради, приклади коду, бібліотеки, лайфхаки та актуальні новин👨‍💻🐍

По всім питанням👉 @giorg_jr

❗️Канал регулярно очищується від неактивних підписників❗️
Download Telegram
У кого какие предположения почему такой результат?

Обязательно напишите свой вариант в комментариях👇
yield from

Бытует мнение, что yield from был добавлен в Python 3, чтобы объединить две конструкции: yield и цикл for, потому что они часто используются совместно, как в примере(на картинке слева).

Однако истинное предназначение немного в другом. Конструкция позволяет «вкладывать» один генератор в другой, то есть создавать субгенераторы.

yield from позволяет программисту легко управлять сразу несколькими генераторами, настраивать их взаимодействие и, конечно, заменить более длинную конструкцию for+yield

Как видно из примера, yield from позволяет одному генератору получать значения из другого. Этот инструмент сильно упрощает жизнь программиста, особенно при асинхронном программировании.
Ключевое слово None представляет собой константу языка Python и означает отсутствие значения. В других языках программирования, например Java, вместо него используется значение null . Однако null часто вызывает путаницу, особенно у начинающих программистов, считающих, что оно равно целочисленному значению 0 . Поэтому в языке Python используется ключевое слово None , как показано в примере, чтобы четко обозначить его отличие от числового значения 0, пустого списка и пустой строки. Любопытно, что значение None — единственное значение в типе данных NoneType .

В этом коде приведено несколько примеров типа данных None (а также показано, чем он не является). Если не указать для функции возвращаемое значение, то по умолчанию будет возвращаться None .
Функция getsizeof()

Модуль sys стандартной библиотеки предоставляет функцию getsizeof(). Эта функция принимает объект (объект может быть любого типа), вызывает метод sizeof() и возвращает размер объекта в байтах, поэтому вы также можете сделать ваши объекты инспектируемыми.

Сегодня эту функцию испытаем на числах.
Размещайте метод __init__ в самом начале

Хотя для большинства из нас это правило очевидно, но встречаются программисты, которые “прячут” __init__ глубоко в теле класса с другими атрибутами. Располагать же его следует в самом начале класса до упоминания всех остальных методов, поскольку именно там его будут искать при чтении.

При наличии атрибутов класса метод __init__ размещается после них. Во избежание путаницы этого принципа следует последовательно придерживаться при определении всех классов проекта.
Запустить JS в коде Python? Да легко!!!

js2py может переводить и выполнять практически любой код JavaScript. js2py написан на чистом питоне и не имеет никаких зависимостей. По сути, это "реализация ядра" JavaScript на чистом Python.

Перед запуском кода установите пакет:
pip3 install js2py
Друзья, кому под силу исправить код так, чтобы он корректно работал?

Напиши в комментах, что нужно прописать вместо знаков вопросов.

Давайте узнает кто самый главный "питонодав"😂
Вопрос исчерпан.

@pythonnation
Друзья, кому под силу исправить код так, чтобы он корректно работал?

Напиши в комментах, что нужно прописать вместо знаков вопросов.

Продолжаем вычислять главного "питонодава"😂
Вращайте барабан.

Перед
запуском кода внимательно посмотрите, что он делает!
Почему Python кроссплатформенный?

В современной реализации Python транслирует инструкции исходного программного кода в промежуточное представление, известное как байт-код, и затем интерпретирует этот байт-код.

Байт-код обеспечивает переносимость программ, поскольку это платформонезависимый формат.
Почему Python медленно работает?

В первую очередь причиной медленной работы Python является его динамическая природа и универсальность. Его можно использовать в качестве инструмента для решения самых разнообразных задач, хотя при этом зачастую будут доступны более оптимальные и быстрые альтернативы.

Тем не менее, всегда есть способы оптимизировать ваши приложения на Python с помощью асинхронности, инструментов профилирования и использования нескольких интерпретаторов. А для приложений, где время запуска неважно будет полезен JIT-компилятор, и соответственно интерпретатор PyPy. Для тех же частей вашего кода, где производительность критична и у вас при этом имеется много статически типизированных переменных, в качестве наиболее оптимального варианта может стать использование Cython.
This media is not supported in your browser
VIEW IN TELEGRAM
Happy New Year 2️⃣0️⃣2️⃣2️⃣ 🎄

Хочешь себе такую ёлочку?
код тут
Слабые ссылки

Слабые
ссылки позволяют получать доступ к объекту, как и обычные, однако, так сказать, они не учитываются в механизме подсчета ссылок. Другими словами, слабые ссылки не могут поддерживать объект живым, если на него не осталось больше сильных ссылок.

Согласно документации, слабые ссылки нужны для организации кэшей и хэш-таблиц из «тяжелых» объектов, когда не требуется поддерживать объект живым только силами этого самого кэша; чтобы в долгоживущей программе не кончалась память из-за хранения в кэшах большого количества уже не нужных объектов.

Встроенный модуль weakref отвечает за функциональность слабых ссылок.
This media is not supported in your browser
VIEW IN TELEGRAM
Просмотр видео в терминале

video-to-ascii это питоновский пакет, который даёт возможность просматривать видео в терминале, используя таблицу ASCII.

Установка пакета:
pip3 install video-to-ascii

Чтобы запустить видео пропишите слудующую команду:
video-to-ascii -f название_видео.mp4
match/case в Python 3.10

Часто приходится проверять не только тип данных, но и количество, что приводит к появлению огромного числа веток if/else с вызовом функций isinstance, len и обращению к элементам по индексу, ключу или атрибуту. Именно для упрощения работы и уменьшения if/else был введен новый оператор match/case.

Match/case сам решает проблему с проверкой типов данных, с проверкой значений и их количеством, что позволяет упростить логику и увеличить читаемость кода. И очень удобно, что можно объявлять переменные и помещать в них значения прямо в ветке case без использования моржового оператора.
Side effect

Функция имеет побочный эффект, если она изменяет что-либо за пределами определения функции, например: изменение аргументов, переданных функции, или изменение глобальной переменной.
Метаклассы в Python

Предположим, что вы знаете разницу между классами и объектами. Тогда метаклассы не должны быть для вас слишком уж сложными. Если кратко, то они являются классами для классов (отсюда и «мета» в их названии).

Проще говоря, в то время как классы являются чертежами для объектов, метаклассы являются чертежами для классов. Класс является описанием, когда мы создаем его экземпляр, тогда как метакласс является описанием класса, и существует только когда определен класс.

Самая простая реализация метакласса, которая ничего не делает, выглядит следующим образом👆
Форматирование текста

Модуль textwrap может использоваться для форматирования текста в ситуациях, когда требуется красивая печать. Он предлагает функциональность, аналогичную функциям заполнения абзацев, которые можно найти во многих текстовых редакторах и текстовых процессорах.
flake8

Flake8 инструмент, позволяющий просканировать код проекта и обнаружить в нем стилистические ошибки и нарушения различных конвенций кода на Python.

Flake8 умеет работать не только с PEP 8, но и с другими правилами, к тому же поддерживает кастомные плагины.

#линтер