Разъяснивший Python
7.22K subscribers
3.11K photos
40 videos
30 files
3.06K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
Методы: staticm

Необходимость создавать новые объекты "метода" каждый раз, когда Python вызывает методы экземпляра, и необходимость каждый раз изменять аргументы для вставки self сильно повлияла на производительность. CPython 3.7 решил это, введя новые коды операций, которые имеют дело с вызывающими методами без создания объектов временных методов. Это используется только тогда, когда фактически вызывается доступная функция, поэтому фрагменты здесь не затрагиваются и по-прежнему генерируют методы :)

Разъяснивший Python
1
Абсолютная правда

Реализация all функции эквивалентна.
all([]) возвращает True, поскольку итерируемый элемент пуст.

all([[]]) возвращает, False потому что переданный массив содержит один элемент, [] а в python пустой список является ложным.

all([[[]]]) и более высокие рекурсивные варианты всегда есть True. Это потому, что единственный элемент переданного массива ([[...]]) больше не является пустым, а списки со значениями соответствуют действительности.

Разъяснивший Python
Удивительная запятая

Запятая в конце не всегда допустима в списке формальных параметров функции Python.

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

Примечание: Проблема с запятыми в конце исправлена в Python 3.6. Замечания в этом посте кратко обсуждают различные варианты использования запятых в конце в Python.

Разъяснивший Python
Строки и обратная косая черта (ч.1)

В обычной строке python обратная косая черта используется для экранирования символов, которые могут иметь особое значение (например, одинарная кавычка, двойная кавычка и сама обратная косая черта).

Разъяснивший Python
Строки и обратная косая черта (ч.2)

В необработанном строковом литерале (на что указывает префикс r) обратная косая черта передается как есть вместе с поведением экранирования следующего символа.

Это означает, что когда анализатор обнаруживает обратную косую черту в необработанной строке, он ожидает, что за ней последует другой символ. И в нашем случае (print(r"\")) обратная косая черта экранировала завершающую кавычку, оставляя анализатор без завершающей кавычки (отсюда SyntaxError). Вот почему обратная косая черта не работает в конце необработанной строки.

Разъяснивший Python
Не узел!

Приоритет оператора влияет на то, как вычисляется выражение, и == operator имеет более высокий приоритет, чем not operator в Python.

Таким образом, not x == y эквивалентноnot (x == y), что эквивалентно not (True == False) окончательной оценке True.

Но x == not y вызывает SyntaxError вопрос, потому что его можно считать эквивалентным, (x == not) y а не x == (not y) тем, что вы могли ожидать на первый взгляд.

Анализатор ожидал, что not токен будет частью not in оператора (потому что оба оператора == и not in имеют одинаковый приоритет), но после того, как не смог найти in токен, следующий за not токеном, он выдает SyntaxError.

Разъяснивший Python
Половина строк в тройных кавычках

Python поддерживает неявную конкатенацию строковых литералов.

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

Разъяснивший Python
Что не так с логическими значениями? (ч.1)

Изначально в Python не было bool типа (люди использовали 0 для false и ненулевое значение, такое как 1 для true). True, False и bool тип был добавлен в версиях 2.x, но для обратной совместимости True и False нельзя было сделать константами. Они просто были встроенными переменными, и их можно было переназначить.

Разъяснивший Python
Что не так с логическими значениями? (ч.2)

bool является подклассом int в Python. И, таким образом, True и False являются экземплярами int. Целочисленное значение True равно 1, а значение из False равно 0.

Разъяснивший Python
Что не так с логическими значениями? (ч.3)

Python 3 был обратно несовместим, проблема была наконец исправлена, и, таким образом, последний фрагмент не будет работать с Python 3.x!

Разъяснивший Python
Полезные практики разработки

Делимся текстовым гайдом, в котором автор делится полезными практиками разработки. После прочтения очень сильно упростится поддержка твоих проектов в настоящем и будущем.

Читать...

Разъяснивший Python
Ретроспективы проверки

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

Смотреть...

Разъяснивший Python
Опережающие проверки

Опережающая проверка – это специальная конструкция в regex. Она проверяет контекст вокруг совпадения без захвата этого текста в результат. В данном видеоматериале автор рассказывает, как пользоваться опережающими проверками.

Смотреть...

Разъяснивший Python
Как работает линейная регрессия?

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

Читать...

Разъяснивший Python
Сравнение PyTorch и TensorFlow

К 2026 году фреймворки PyTorch и TensorFlow заимствуют лучшие фичи друг у друга, а по частоте использования они находятся примерно на одной отметке. Благодаря данной статье ты узнаешь, какой из этих фреймворков лучше.

Читать...

Разъяснивший Python
Подборка полезных Git-хуков

Git-хуки запускают проверки прямо во время git commit или git push. Это позволяет блокировать коммит, если были обнаружены нарушения. В данной статье автор делится полезными скриптами, которые не позволят тебе закоммитить плохой код.

Читать...

Разъяснивший Python
Пишем Python код на русском языке

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

Читать...

Разъяснивший Python
Дополнительные функции модуля os.path

Продолжаем делиться циклом видеоматериалов, где автор знакомит с модулем os.path. В прошлый раз были разобраны основные функции, в этот раз акцент сделан на менее популярных функциях.

Смотреть...

Разъяснивший Python
Изменение неизменяемого! (ч.2)

+= оператор изменяет список на месте. Назначение элемента не работает, но когда возникает исключение, элемент уже был изменен на месте.

Также есть объяснение в официальном FAQ по Python.

Разъяснивший Python
Принципы SOLID с примерами на Python

SOLID – это набор правил, к которым на опыте пришли разработчики. Это помогает писать сложные проекты, чтобы они оставались логичными, понятными, читаемыми, расширяемыми и их можно было сопровождать. В этом видео автор разберет каждый из 5 принципов SOLID, рассмотрит действительно ли они так важны и покажет примеры кода на Python.

Смотреть...

Разъяснивший Python