Топ популярных горячих клавиш, для PyCharm: Ctrl + D — Дублировать строку, когда пишешь схожие строки, теперь нет надобности набирать их сначала или выделять и копировать. Ctrl + R — Решил переименовать класс? Изменит имя во всем проекте. Ctrl + Shift + N — Поиск класса или метода по всему проекту. Ctrl + Alt + M — Написали код, теперь захотели его обернуть в функцию, вот сочетание. Ctrl + Alt + S — Перейти в настройки. Ctrl + Y — Удалить строку. Ctrl + B — Переместиться к данному классу. Ctrl +...
PYTHON IN DEPTH🐍
ПАЙ8
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
20 из 20Новости nogil. Steering Council принял PEP 703 - опциональный gil из коробки. На discuss.python.org большой пост про это, я приведу только заинтересовавшие меня моменты: Пока нет уверенности, что выпиливание gil не поломает совместимость со сторонними либами, не сделает интерпретатор медленнее на 10–15% и не усложнит его поддержку. Выбрали вполне ожидаемый подход - реализуем и посмотрим, как пойдет, потому что на прототипах и теоретических выкладках далеко не уедешь. Как и предполагали раньше, в...
Дублирование объектов в множестве Предположим, у нас есть сервер и его клиенты. Мы хотим отслеживать состояние клиентов на сервере и управлять ими. Для этой цели мы будем добавлять клиентов в коллекцию, чтобы избежать случайного дублирования одного и того же клиента на сервере. Давайте создадим класс Client и добавим его в коллекцию (я также добавил метод repr для красивого вывода): class Client: def init(self, user_name): self.user_name = user_name def repr(self): return self.user_name fish1 = ...
Вышла первая бета Django 5.0, а значит значимого изменения состава релиза уже не будет и можно смотреть, что завезли: 1. Много поддержки асинхронности - в contrib.auth, возможность получить и обработать asyncio.CancelledError внутри вьюхи, если клиент разорвал соединение до того, как мы закончили обрабатывать запрос, поддержка асинхронки в куче декораторов, асинхронная отправка сигналов, новые асинхронные методы у моделек 2. На первом месте довольно спорная фича - возможность показывать количест...
🖥Microsoft интегрировала Python в Excel Все популярные библиотеки Python (pandas, statsmodels и matplotlib) стали доступны для создания графиков и диаграмм. Для реализации всего этого появилась новая функция "PY"
Еще про исключения: repr(e) -- это, конечно хорошо, но ведь есть ещё лучше, а именно: from traceback import print_exc ... my_dict = {} try: b = my_dict["bad"] except Exception as e: print_exc() что выведет: Traceback (most recent call last): File "<pyshell#1>", line 2, in <module> KeyError: 'bad' и при этом программа продолжит свою работу. А если ошибку надо выводить не в stdout, то можно сделать так: from traceback import print_exc from io import StringIO ... try: b = my_dict["bad"] except Exce...
Исключения Представьте, вы приступаете к работе над новым проектом и обнаруживаете в логах следующие сообщения, которые смешаны с успешными запросами к серверу: Unexpected exception: Что-то постоянно ломается, но без каких-либо сообщений. Если сократить проблему до минимального примера из кода приложения, с которым я недавно столкнулся, получится следующая конструкция, которая на первый взгляд не вызывает подозрений: try: raise KeyError except Exception as e: print(f"Unexpected exception: {e}") ...
Комбинируем декораторы Допустим, у нас есть функции, которые работают со строками. Возьмем, например, функцию, которая возвращает строчку из Zen of Python: def readability(): return 'Readability counts' print(readability()) Readability counts А теперь мы хотим, чтобы можно было показать текст в двух вариантах: жирным и курсивом. Вот два декоратора, один из которых добавляет тег <<жирный>>, а второй <<курсив>> : def bold(func): def wrapper(): return '<b>' + func() + '</b>' return wrapper def ital...
Еееееее, а че мы над js смеемся
Гид по множественному присваиванию Уверена, что множественное присваивание в Python видели все. Выглядит оно вот так: >>> x, y, z = 1, 2, 3 >>> x 1 >>> z 3 На самом деле на низком уровне создается tuple и в цикле инициализируется значениями 1, 2, 3. Поэтому с тем же успехом можно не опускать скобки и написать вот так: >>> (x, y, z) = (1, 2, 3) >>> x 1 >>> z 3 И это тоже сработает. Поэтому множественное присваивание еще называют tuple unpacking. Да и чаще всего его, кажется, используют именно с к...