Сообщество Программистов – Telegram
Сообщество Программистов
14.8K subscribers
94 photos
3 videos
41 files
118 links
Здесь ты найдешь полезные материалы которые позволят тебе развиваться в IT.
А именно статьи, книги и курсы на тему Python, других языков программирования и IT технологий.

Youtube Канал: youtube.com/c/ZProgerIT
Автор канала: @zproger8
Download Telegram
Как использовать символы Юникода внутри F-Строк?

В документации Python 3.12 есть такой пример:
print(f"This is the playlist: {"\N{BLACK HEART SUIT}".join(songs)}")

Вывод: This is the playlist: Take me back to Eden♥️Alkaline♥️Ascensionism

Но почему "BLACK HEART SUIT" преобразовался в ♥️?

Итак, нам необходимо перейти на данный сайт, выбрать любой символ, и определить его идентификатор как на скрине выше. F-Строка сама преобразует значение в нужный символ.

Давайте попробуем взять 100 🔥 и я пойду дальше
🔥180👍2
Улучшения Comprehensions в Python 3.12

Изначально технология была реализована как одноразовая функция, которая создавала объект при каждом выполнении Comprehension. В Python 3.12 технология была встроена в язык, что ускоряет выполнение примерно в 2 раза, так как она больше не идентифицирует себя как функция и не несет лишних расходов. В реальных условиях скорость выросла примерно на 11%.

За счет того, что Comprehension был встроен внутрь языка, изменилась также трассировка, теперь она стала более понятной.

Python 3.11 включал Comprehension в Traceback как отдельную функцию, что создавало доп.вопросы:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in f
File "<stdin>", line 5, in <listcomp>
File "<stdin>", line 2, in g
RuntimeError: boom

Теперь это выглядит так:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in f
File "<stdin>", line 2, in g
RuntimeError: boom

130 🔥 и идем дальше
🔥184👍7😁2
Новый синтаксис дженериков Python3.12

В
прошлых версиях псевдонимы записывались след.образом:
from typing import TypeAlias

_T = TypeVar("_T")
ListOrSet: TypeAlias = list[_T] | set[_T]

Сейчас эта запись выглядит примерно так:
type ListOrSet[T] = list[T] | set[T]

Появилась идея показать новые потоки Python3.12 в отдельном видео, давайте наберем 150🔥 и я сделаю этот ролик
🔥306👍15
source.zip
5.5 KB
👆Исходный код

На создание видео ушло ~5 дней, буду благодарен, если поддержите лайком 😉
👍153🔥15🤔2
IceCream для замены print.pdf
78.5 KB
Добавляю статью с дополнительными фишками IceCream
🔥18👍10🤔4
source.zip
3.4 KB
👆 Исходный код из видео
🔥16👍5
Как улучшить скорость набора.pdf
605.6 KB
Заметки, которые я делал в процессе изучения
🔥34👍8
This media is not supported in your browser
VIEW IN TELEGRAM
Что думаете на счет такого сплита? 😁
🔥120😁45👍10🤯6
Компоненты для сборки Lily58 Pro.pdf
681.7 KB
Было много комментариев с просьбой подготовить список компонентов моей split клавиатуры из последнего видео.

Я составил такой список и вы можете подобрать компоненты под себя.
👍43🔥13
source.zip
3.9 KB
👆 Исходный код
👍19🔥6
Добавляем индексы внутрь класса

1. Инициализация экземпляра. На этом этапе принимаем data и записываем его внутрь пространства self, который отображает созданный экземпляр (пункт 3).

2. Dunder метод getitem отрабатывает во время вызова 10й строчки кода (пункт 4). Он принимает тот самый index, благодаря которому мы можем вернуть значение из списка self.data.

3. Создаем экземпляр класса и передаем list.

4. Обращаемся по индексу, тем самым вызывая getitem.

80 🔥 и идем дальше
🔥113👍15🤔2😁1
Еще один пример динамической генерации объектов

Похожие примеры были в этом видео. Если вы не знали, то type можно использовать в том числе и для создания новых классов.

При запуске получаем вывод:
"Dynamic Class: bla-bla-bla"

Все методы создаются ровно во время выполнения через анонимные функции. Используя такой подход мы можем динамически создавать нужные нам объекты.

100 🔥 и покажу как сделать динамическое наследование функционала.

Кстати это также примеры из курса ООП, на который сейчас действует новогодняя скидка.
Подробней о курсе рассказывал по этому тайм-коду.
🔥121👍8🤯7🤔3
Динамический импорт модулей

В данном примере загрузка происходит на этапе выполнения программы, таким же образом можно загружать собственные модули 👇

import importlib

a = importlib.import_module("my_module")
print(a.run_func()) # Вызываем функцию из модуля

Пример на скриншоте показывает способ загрузки через ввод пользователя.

Ваш софт может содержать собственные модули, которые необходимо загружать только после запроса пользователя, и такой подход позволяет решить эту проблему.
🔥58👍15😁1