Экономия памяти с помощью slots
Здесь, когда мы объявляем атрибут slots, Python использует для хранения атрибутов не словарь, а маленький массив фиксированного размера. Это серьёзно сокращает объём памяти, необходимый для каждого из экземпляров класса. У применения атрибута slots есть и некоторые недостатки. Так, пользуясь им, мы не можем объявлять новые атрибуты, мы ограничены только теми, которые имеются в slots. Кроме того, классы c атрибутом slots не могут использовать множественное наследование.
#theory // Just Python
Здесь, когда мы объявляем атрибут slots, Python использует для хранения атрибутов не словарь, а маленький массив фиксированного размера. Это серьёзно сокращает объём памяти, необходимый для каждого из экземпляров класса. У применения атрибута slots есть и некоторые недостатки. Так, пользуясь им, мы не можем объявлять новые атрибуты, мы ограничены только теми, которые имеются в slots. Кроме того, классы c атрибутом slots не могут использовать множественное наследование.
#theory // Just Python
Создание объектов, поддерживающих выражение with
Все знают о том, как, например, открыть файл, или, возможно, как установить блокировку с использованием оператора with. Но можно ли самостоятельно реализовать механизм управления блокировками? Да, это вполне реально. Протокол управления контекстом исполнения реализуется с использованием методов enter и exit
#theory // Just Python
Все знают о том, как, например, открыть файл, или, возможно, как установить блокировку с использованием оператора with. Но можно ли самостоятельно реализовать механизм управления блокировками? Да, это вполне реально. Протокол управления контекстом исполнения реализуется с использованием методов enter и exit
#theory // Just Python
Сделать список плоским (ч.1)
Ох уж эти списки, состоящие из списков. Как бы их сделать попроще, выстроить в один ряд? Для этого тоже есть решение.
В третьей строке код проверяет, не является ли элемент списком. Если да, то использует метод extend() для расширения этим элементом итогового списка.
#theory // Just Python
Ох уж эти списки, состоящие из списков. Как бы их сделать попроще, выстроить в один ряд? Для этого тоже есть решение.
В третьей строке код проверяет, не является ли элемент списком. Если да, то использует метод extend() для расширения этим элементом итогового списка.
#theory // Just Python
%dhist
Это очень полезная магическая команда; она печатает все каталоги, которые мы посетили в текущем сеансе. Каждый раз, когда выполняется команда %cd, она обновляется в переменной _dh.
#theory // Just Python
Это очень полезная магическая команда; она печатает все каталоги, которые мы посетили в текущем сеансе. Каждый раз, когда выполняется команда %cd, она обновляется в переменной _dh.
#theory // Just Python
difference_update()
Метод differenceupdate() позволяет получить набор элементов, которые присутствуют в первом множестве и не являются общими для обоих. Это означает, что differenceupdate() удаляет элементы, существующие в обоих множествах. Он не возвращает новый set, а просто удаляет общие элементы из первого множества.
#theory // Just Python
Метод differenceupdate() позволяет получить набор элементов, которые присутствуют в первом множестве и не являются общими для обоих. Это означает, что differenceupdate() удаляет элементы, существующие в обоих множествах. Он не возвращает новый set, а просто удаляет общие элементы из первого множества.
#theory // Just Python
insert()
Команда insert() добавляет элемент в указанное место в объекте списка.
#theory // Just Python
Команда insert() добавляет элемент в указанное место в объекте списка.
#theory // Just Python
Ребята из PRODHERO clck.ru/3Rbhbu делают футболки и худи для тех, кто каждый день коммитит, ревьюит и релизит.
В первой коллекции всё строго по ТЗ:
— ткани, которые не линяют и не оставляют артефакты на другой одежде;
— укреплённые горловины и манжеты для потных каток;
— шелкография, которая продержится дольше, чем любой джун на стажировке.
Одежда PRODHERO рассчитана на реальную активную жизнь айтишника: созвоны сидя, стендапы лёжа, митапы из кофепоинта и променады в офис.
Пора брать: clck.ru/3Rbhbu
В первой коллекции всё строго по ТЗ:
— ткани, которые не линяют и не оставляют артефакты на другой одежде;
— укреплённые горловины и манжеты для потных каток;
— шелкография, которая продержится дольше, чем любой джун на стажировке.
Одежда PRODHERO рассчитана на реальную активную жизнь айтишника: созвоны сидя, стендапы лёжа, митапы из кофепоинта и променады в офис.
Пора брать: clck.ru/3Rbhbu
Доступ к файловой системе компьютера со смартфона
Вы можете получить доступ к вашей файловой системе, запустив файловый сервер на вашем компьютере. Данная команда запускает файловый сервер, к которому можно получить доступ в той же сети. Чтобы получить доступ к своим файлам на мобильном устройстве, просто подключитесь к той же сети (Wi-Fi или воспользуйтесь точкой доступа телефона на ноутбуке).
#theory // Just Python
Вы можете получить доступ к вашей файловой системе, запустив файловый сервер на вашем компьютере. Данная команда запускает файловый сервер, к которому можно получить доступ в той же сети. Чтобы получить доступ к своим файлам на мобильном устройстве, просто подключитесь к той же сети (Wi-Fi или воспользуйтесь точкой доступа телефона на ноутбуке).
#theory // Just Python
Разделение списка на «N» групп
Пользователи могут использовать функцию iter() в качестве итератора над последовательностью. В коде мы использовали «[iter(LIST_1)] * 2», который произвел разные группы, содержащие два элемента списка «LIST_1 []». То есть списки длины 2 будут сгенерированы с использованием элементов из первого списка.
#theory // Just Python
Пользователи могут использовать функцию iter() в качестве итератора над последовательностью. В коде мы использовали «[iter(LIST_1)] * 2», который произвел разные группы, содержащие два элемента списка «LIST_1 []». То есть списки длины 2 будут сгенерированы с использованием элементов из первого списка.
#theory // Just Python
Отладка программы в командной строке
Если вы — из тех, кто не хочет пользоваться IDE и пишет код в Vim или Emacs, тогда вы, возможно, попадали в ситуацию, когда вам пригодился бы отладчик, вроде тех, что есть в IDE. И знаете что? У вас такой отладчик уже есть. Для того чтобы им воспользоваться, достаточно запустить программу с помощью конструкции вида python3.8 -i. Флаг -i позволяет, после завершения программы, запустить интерактивную оболочку. С её помощью можно исследовать переменные и вызывать функции.
#theory // Just Python
Если вы — из тех, кто не хочет пользоваться IDE и пишет код в Vim или Emacs, тогда вы, возможно, попадали в ситуацию, когда вам пригодился бы отладчик, вроде тех, что есть в IDE. И знаете что? У вас такой отладчик уже есть. Для того чтобы им воспользоваться, достаточно запустить программу с помощью конструкции вида python3.8 -i. Флаг -i позволяет, после завершения программы, запустить интерактивную оболочку. С её помощью можно исследовать переменные и вызывать функции.
#theory // Just Python
Транспонирование матриц
В Python пользователь может реализовать матрицу как вложенный список, что означает список внутри списка. Каждый элемент списка рассматривается как строка матрицы.
#theory // Just Python
В Python пользователь может реализовать матрицу как вложенный список, что означает список внутри списка. Каждый элемент списка рассматривается как строка матрицы.
#theory // Just Python
По данным McKinsey, генеративный AI экономит до 30% рабочего времени. Проблема в том, что лидеры рынка меняются каждые пару месяцев — и вместе с этим растёт количество вкладок, аккаунтов и подписок.
MetaMind решает это: все основные нейросети для текста и изображений собраны в одном телеграм-боте.
Можно переключаться между моделями и сравнивать результаты, не выходя из чата — прямо по ссылке.
MetaMind решает это: все основные нейросети для текста и изображений собраны в одном телеграм-боте.
Можно переключаться между моделями и сравнивать результаты, не выходя из чата — прямо по ссылке.
Метод __init__
Метод init вызывается после того, как инстанцирован объект класса. Этот метод полезен для выполнения любой запланированной вами инициализации. Метод init аналогичен конструктору в C++, C# и Java.
#theory // Just Python
Метод init вызывается после того, как инстанцирован объект класса. Этот метод полезен для выполнения любой запланированной вами инициализации. Метод init аналогичен конструктору в C++, C# и Java.
#theory // Just Python
Создание объектов, поддерживающих выражение with
Этот способ легче предыдущего. Здесь протокол управления контекстом реализован с использованием декоратора contextmanager. Первая часть функции tag (до yield) выполняется при входе в блок with. Затем выполняется сам этот блок, а после этого выполняется оставшаяся часть функции tag.
#theory // Just Python
Этот способ легче предыдущего. Здесь протокол управления контекстом реализован с использованием декоратора contextmanager. Первая часть функции tag (до yield) выполняется при входе в блок with. Затем выполняется сам этот блок, а после этого выполняется оставшаяся часть функции tag.
#theory // Just Python
Объявление нескольких конструкторов в классе
В подобной ситуации вы, вместо использования методов класса, можете склониться к тому, чтобы поместить всю логику альтернативных конструкторов в init и решить задачу с использованием *args, **kwargs и множества выражений if. В результате может получиться рабочий код, но этот код будет тяжело читать и поддерживать. Тут я порекомендовал бы поместить минимум логики в init и выполнить все операции в отдельных методах/конструкторах. При таком подходе в нашем распоряжении окажется чистый код, с которым удобно будет работать и автору этого кода, и тому, кто этим кодом будет пользоваться.
#theory // Just Python
В подобной ситуации вы, вместо использования методов класса, можете склониться к тому, чтобы поместить всю логику альтернативных конструкторов в init и решить задачу с использованием *args, **kwargs и множества выражений if. В результате может получиться рабочий код, но этот код будет тяжело читать и поддерживать. Тут я порекомендовал бы поместить минимум логики в init и выполнить все операции в отдельных методах/конструкторах. При таком подходе в нашем распоряжении окажется чистый код, с которым удобно будет работать и автору этого кода, и тому, кто этим кодом будет пользоваться.
#theory // Just Python
Управление тем, что может быть импортировано из модуля, а что — нет
Тут будет экспортирована будет лишь функция bar. А если оставить атрибут all пустым, то из модуля не будет экспортироваться вообще ничего. При попытке импорта чего-либо из такого модуля будет выдана ошибка AttributeError.
#theory // Just Python
Тут будет экспортирована будет лишь функция bar. А если оставить атрибут all пустым, то из модуля не будет экспортироваться вообще ничего. При попытке импорта чего-либо из такого модуля будет выдана ошибка AttributeError.
#theory // Just Python
Очистка входных строковых данных
Задача очистки данных, вводимых пользователем, актуальна практически для любой программы.
Здесь можно видеть, как пробельные символы "n" и "t" заменяются на обычные пробелы, и как символ "r" удаляется из строки полностью.
Это — простой пример, но мы можем его расширить, создавая большие таблицы переназначения символов с использованием пакета unicodedata и его функции combining().
Такой подход позволяет убирать из строк всё то, что там не нужно.
#theory // Just Python
Задача очистки данных, вводимых пользователем, актуальна практически для любой программы.
Здесь можно видеть, как пробельные символы "n" и "t" заменяются на обычные пробелы, и как символ "r" удаляется из строки полностью.
Это — простой пример, но мы можем его расширить, создавая большие таблицы переназначения символов с использованием пакета unicodedata и его функции combining().
Такой подход позволяет убирать из строк всё то, что там не нужно.
#theory // Just Python
Тип данных SET
Тип данных «set» — это своего рода коллекция. Она стала частью Python, начиная с версии 2.4. Множество содержит неупорядоченную коллекцию уникальных и неизменяемых объектов. Это один из типов данных Python, реализующих множества из мира математики. Множества, в отличие от списков или кортежей, не могут содержать дублей.
Если вы хотите создать множество, просто используйте встроенную функцию set() с последовательностью или другими итерируемыми объектами в качестве аргументов.
#theory // Just Python
Тип данных «set» — это своего рода коллекция. Она стала частью Python, начиная с версии 2.4. Множество содержит неупорядоченную коллекцию уникальных и неизменяемых объектов. Это один из типов данных Python, реализующих множества из мира математики. Множества, в отличие от списков или кортежей, не могут содержать дублей.
Если вы хотите создать множество, просто используйте встроенную функцию set() с последовательностью или другими итерируемыми объектами в качестве аргументов.
#theory // Just Python