Как начать отладку при утечке памяти в рабочем приложении
Для отладки утечек памяти в Python можно использовать инструменты, такие как Memory Profiler или objgraph.
Запустите вашу программу с помощью команды python -m memory_profiler my_script.py. Будет выведен подробный отчет о том, сколько памяти используется в каждой строке программы, а также общее использование памяти и любые утечки.
Этот код создаст изображение my_list.png, на котором будут показаны все объекты, на которые ссылается my_list, а также все объекты, которые ссылается на них. Это может помочь вам понять, какие объекты держат ссылки на ваши объекты и могут вызывать утечки памяти.
🐍 Укус питона // 💬 Чат // #теория #if #конструкции
Для отладки утечек памяти в Python можно использовать инструменты, такие как Memory Profiler или objgraph.
Запустите вашу программу с помощью команды python -m memory_profiler my_script.py. Будет выведен подробный отчет о том, сколько памяти используется в каждой строке программы, а также общее использование памяти и любые утечки.
Этот код создаст изображение my_list.png, на котором будут показаны все объекты, на которые ссылается my_list, а также все объекты, которые ссылается на них. Это может помочь вам понять, какие объекты держат ссылки на ваши объекты и могут вызывать утечки памяти.
🐍 Укус питона // 💬 Чат // #теория #if #конструкции
Что может быть ключом в словаре
В Python ключом в словаре может быть любой неизменяемый объект, такой как число, строка или кортеж.
В этом примере ключами словаря являются число 1, строка ‘two’ и кортеж (3, 4). Однако, если вы попытаетесь использовать изменяемый объект, такой как список, как ключ словаря, вы получите TypeError.
🐍 Укус питона // 💬 Чат // #теория #if #конструкции
В Python ключом в словаре может быть любой неизменяемый объект, такой как число, строка или кортеж.
В этом примере ключами словаря являются число 1, строка ‘two’ и кортеж (3, 4). Однако, если вы попытаетесь использовать изменяемый объект, такой как список, как ключ словаря, вы получите TypeError.
🐍 Укус питона // 💬 Чат // #теория #if #конструкции
Библиотека igraph предназначена для работы с графами и сетями, обеспечивая возможность строить, анализировать и визуализировать их.
Igraph широко применяется в анализе социальных сетей, изучении структуры крупных сетей (например, веб-ссылок), в биоинформатике для исследования взаимодействий белков и других задач, связанных с теорией графов.
Основные функции igraph включают в себя генерацию случайных и классических графов, вычисление различных метрик (например, степень вершин, диаметр графа), а также поиск сообществ и кластеров.
🐍 Укус питона // 💬 Чат // #теория #if #конструкции
Igraph широко применяется в анализе социальных сетей, изучении структуры крупных сетей (например, веб-ссылок), в биоинформатике для исследования взаимодействий белков и других задач, связанных с теорией графов.
Основные функции igraph включают в себя генерацию случайных и классических графов, вычисление различных метрик (например, степень вершин, диаметр графа), а также поиск сообществ и кластеров.
🐍 Укус питона // 💬 Чат // #теория #if #конструкции
В данной статье мы рассмотрим использование Python для майнинга криптовалют и создания NFT (Non-Fungible Tokens).
Мы не будем обсуждать финансовые аспекты, но сосредоточимся исключительно на программировании.
Автор этой статьи использует робота для автоматизации процесса добычи криптовалют в игре RPG, используя Python и библиотеку PyAutoGUI.
🐍 Укус питона // 💬 Чат // #теория #if #конструкции
Мы не будем обсуждать финансовые аспекты, но сосредоточимся исключительно на программировании.
Автор этой статьи использует робота для автоматизации процесса добычи криптовалют в игре RPG, используя Python и библиотеку PyAutoGUI.
🐍 Укус питона // 💬 Чат // #теория #if #конструкции
🖥 Шпаргалка по Python, в которой собраны небольшие скрипты для решения повседневных задач
Вот, кстати, некоторые из них:
— добавить файл
— понятный вывод различий между строками
Вот, кстати, некоторые из них:
— добавить файл
sample.txt
к архиву .tar.gz
:import tarfile
with tarfile.open('sample.tar.gz', 'w:gz') as tar:
tar.add('sample.txt')
— понятный вывод различий между строками
import difflib
diff = difflib.ndiff('one\ntwo\nthree\n'.splitlines(keepends=True),
'ore\ntree\nemu\n'.splitlines(keepends=True))
print(''.join(diff))
⬆️В примере выше первая и вторая строки похожи, но отличаются видами скобок. В списковом включении они используют квадратные скобки, а в генераторном выражении – круглые.
➡️Из вывода переменных видно, что l содержит список, а g – генератор. Таким образом, возникает вопрос, что использовать в данной ситуации.
Если нужен результат в виде списка немедленно для дальнейшей работы, то лучше использовать генераторы коллекций.
➡️А если значения могут потребоваться не скоро, или даже не факт, что они будут нужны, то более предпочтительно использовать генераторы, чтобы не занимать лишнюю память и не перегружать систему.
➡️Из вывода переменных видно, что l содержит список, а g – генератор. Таким образом, возникает вопрос, что использовать в данной ситуации.
Если нужен результат в виде списка немедленно для дальнейшей работы, то лучше использовать генераторы коллекций.
➡️А если значения могут потребоваться не скоро, или даже не факт, что они будут нужны, то более предпочтительно использовать генераторы, чтобы не занимать лишнюю память и не перегружать систему.
Что выведет код?
Anonymous Quiz
64%
{True: 'one', 1: 'two', 1.0: 'three'}
24%
{True: 'three'}
4%
{1: 'two'}
7%
{1.0: 'one'}