Python Education
关闭频道
Обучаем Python как маленьких, так и взрослых Ссылка: @Portal_v_IT Сотрудничество: @oleginc, @tatiana_inc Канал на бирже: telega.in/c/python_educa РКН: clck.ru/3MnbNV
显示更多8 736
订阅者
-324 小时
-337 天
-8030 天
帖子存档
8 736
Использование * и ** для распаковки аргументов функций
Некоторые функции требуют длинного списка аргументов. Этого следует избегать (например, с помощью классов данных), хотя это не всегда зависит от вас. Существует другой вариант – создать словарь с именованными аргументами и передать его функции. Так ваш код станет более читабельным.
Распаковать словарь можно, используя префикс **
Аналогично можно использовать * для распаковки массива и передачи его содержимого в качестве аргументов функции
8 736
*args и **kwargs
Иногда нельзя предсказать, сколько аргументов получит функция. Чтобы обработать их, используются специальные конструкции args и kwargs.
На самом деле, названия переменных – args, kwargs – это просто соглашение. Важны здесь только звездочки. Они обозначают сборку аргументов в коллекцию (список или словарь). Одна звездочка предназначена для обычных аргументов, две – для именованных.
Можно заменить args на vars, а kwargs на options или другое слово. Программа будет работать так, как ожидается. Однако, другие разработчики могут вас не понять.
Конструкции args и kwargs можно использовать как самостоятельно, так и в комбинации с любым количеством обычных аргументов. Например, в коде выше первый параметр farg обрабатывается отдельно, а все остальные собираются в коллекцию.
8 736
Как настроить карты кода с помощью Django
Карты кода — это файлы, которые сопоставляют ваш минимизированный CSS или JavaScript с исходным кодом. Они позволяют вам использовать инструменты разработки вашего браузера для отладки минимизированного кода, как если бы он был оригиналом.
Как карты кода вписываются в инфраструктуру статических файлов Django, а также как их настроить, узнаете здесь:
Подробнее
8 736
Использование памяти
С помощью sys.getsizeof() можно проверить использование памяти объектом
Огромный список всего 48 байт, потому что функция range возвращает класс, который ведет себя как список. В вопросе памяти range эффективнее, чем использование актуального списка чисел.
8 736
Итераторы и генераторы
Итератор – это интерфейс, который позволяет перебирать элементы последовательности. Он используется, например, в цикле for ... in ..., но этот механизм скрыт от глаз разработчика. При желании итератор можно получить "в сыром виде", воспользовавшись функцией iter().
Чтобы получить следующий элемент коллекции или строки, нужно передать итератор функции next().
Под капотом функциональность реализуется в методах __iter__ и __next__.
На базе итераторов в языке появились новые элементы синтаксического сахара: выражения-генераторы и генераторы коллекций. Они позволяют устанавливать условия для отбора.
Выражения-генераторы не создают целый список заданной длины сразу, а добавляют элементы по мере необходимости.
Очевидно, что генераторы могут выполнять работу функций map и filter. Более того, они справляются с этой задачей эффективнее.
8 736
RuCLIP tiny — быстрее, чем вы думаете
Автор статьи поделился своим опытом создания более легковесной версии модели машинного обучения RuCLIP, которая способна сравнивать схожесть текстового описания с изображением:
Читать
8 736
Нарезка списка
Синтаксис нарезания таков:
a[start:stop:step]Start, stop и step необязательны. У них есть дефолтные значения, которые активируются, если не заполнить параметры: • 0 для start; • конец списка для stop; • 1 для step.
8 736
Списки
Многие программисты испытывают сложности с пониманием списков. Однако, это очень важная тема, и в ней необходимо разобраться.
Вот небольшая задачка по python-спискам для тренировки мозга:
Определите, что находится в каждой переменной, и сравните свои предположения с ответом.
Если эти преобразования вам непонятны, потратьте на них немного времени.
8 736
Управление памятью в Python: 3 частых вопроса на собеседовании
Представьте, что вы на собеседовании на должность Python-разработчика. Спросить там могут что угодно, например про управление памятью. Вот как Python собирает мусор?
Если не знаете или сомневаетесь в ответе, то прочитайте эту статью. В ней ответили на этот и другие вопросы:
Читать
8 736
Объединение словарей
Начиная с Python 3.5, стало проще объединять словари.
Если встречаются дублирующиеся ключи – в первом словаре они будут перезаписаны.
8 736
Лямбда-выражения
Лямбды пришли в Python из языка Lisp. Это простые анонимные функции, записанные в одну строку. Их можно объявить даже там, где нельзя воспользоваться инструкцией def. Например, эти выражения часто используются в методах filter и map.
8 736
Шаблоны Django: реализация пользовательских тегов и фильтров
Шаблоны Django помогают вам управлять HTML-кодом вашего веб-приложения. Они используют мини-язык с переменными, тегами и фильтрами. Вы можете условно включать блоки, создавать циклы и изменять переменные до того, как они будут показаны.
У Django изначально много встроенных тегов и фильтров, но даже их может быть недостаточно. Для этого в Django есть возможность написать свой собственный тег или фильтр.
В этом руководстве рассматриваются все тонкости написания собственных пользовательских тегов и фильтров шаблона Django:
Читать
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
