python_per_month | Unsorted

Telegram-канал python_per_month - Python Learning

28154

Обучающий канал по Python Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/Python_per_month

Subscribe to a channel

Python Learning

⚙️ signal.setitimer()

Метод signal.setitimer() позволяет устанавливать таймер, который автоматически отправляет сигнал процессу через заданные интервалы времени. Это полезно для периодического выполнения кода без создания потоков.

Python Learning 👩‍💻

Читать полностью…

Python Learning

⚙️ importlib.reload()

Метод importlib.reload() позволяет повторно загрузить модуль во время выполнения программы. Это полезно для динамической перезагрузки кода без необходимости перезапуска интерпретатора.

Python Learning 👩‍💻

Читать полностью…

Python Learning

⚙️ sys._getframe()

Метод sys._getframe() позволяет получить объект текущего или родительского стека вызовов. Это полезно для отладки, анализа кода и динамического доступа к локальным переменным.

Python Learning 👩‍💻

Читать полностью…

Python Learning

Что будет выведено при выполнении кода?

Пояснение
⬇️

Множество (set) в Python хранит только уникальные элементы, поэтому дубликаты 3 и 4 автоматически удаляются при создании numbers. Операция add(3) не изменяет множество, так как 3 уже в нём есть. Операция remove(2) удаляет 2 из множества. Код выполняется корректно.


Python Learning
👩‍💻

Читать полностью…

Python Learning

🚫 Антипаттерн недели: Использование range(len()) вместо enumerate()

В Python часто используют range(len(lst)) для итерации по списку с индексами, но это снижает читаемость кода и не является идиоматичным способом перебора элементов.

✔️ Используйте enumerate(), который позволяет одновременно получать индекс и значение элемента, делая код более читаемым и питоничным.

Python Learning
👩‍💻

Читать полностью…

Python Learning

⚙️ __slots__

Метод __slots__ позволяет явно указать, какие атрибуты может иметь объект класса, что значительно уменьшает потребление памяти и ускоряет доступ к атрибутам. Это особенно полезно при создании большого количества экземпляров класса.

Python Learning 👩‍💻

Читать полностью…

Python Learning

Что будет выведено при выполнении кода?

Пояснение
⬇️

Функция map применяет лямбда-функцию lambda x: x ** 2 к каждому элементу списка numbers, возводя его в квадрат. Возвращается объект map, который преобразуется в список с помощью list(squared). Код выполняется корректно.


Python Learning
👩‍💻

Читать полностью…

Python Learning

⚙️ concurrent.futures.ThreadPoolExecutor()

Класс concurrent.futures.ThreadPoolExecutor из модуля concurrent.futures позволяет легко создавать и управлять пулом потоков для выполнения задач параллельно. Это особенно полезно для выполнения нескольких операций ввода-вывода или вычислений, которые могут быть распределены между несколькими потоками.

Python Learning 👩‍💻

Читать полностью…

Python Learning

Вопрос на собеседовании

Как работает Python GIL (Global Interpreter Lock), почему он существует, и как его влияние можно минимизировать?

Ответ ⬇️
GIL — это механизм, который синхронизирует выполнение потоков в интерпретаторе CPython, позволяя только одному потоку исполнять Python-код в единицу времени, даже на многопроцессорных системах. GIL существует для упрощения управления памятью CPython, так как он делает объектную модель потокобезопасной.

Хотя GIL ограничивает параллелизм в многопоточных задачах, он не влияет на многопроцессные программы. Его влияние можно минимизировать, используя:

• Многопроцессный подход через модуль multiprocessing.
• Вызовы низкоуровневого кода (например, библиотеки C, освобождающие GIL).
• Асинхронное программирование (asyncio) для задач ввода-вывода.


Пример использования ⚙️

import threading

counter = 0

def increment():
global counter
for _ in range(1000000):
counter += 1

threads = [threading.Thread(target=increment) for _ in range(2)]

for thread in threads:
thread.start()

for thread in threads:
thread.join()

print("Итоговый счётчик:", counter) # Результат может быть меньше 2000000 из-за GIL


Python Learning
👩‍💻

Читать полностью…

Python Learning

Узнай свой грейд и зарплату — бесплатно

1. Переходи в бота ШОРТКАТ @shortcut_python_bot
2. Бронируй удобный слот на индивидуальную встречу для тестирования
3. Проходи тест
4. Сразу же на звонке узнаешь свой грейд и з/п в рынке — на основе опыта менторов из бигтеха

Всё просто, даже добавить нечего

Пройти тестирование в ШОРТКАТ ➡️ @shortcut_python_bot

Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqxRdUBv

Читать полностью…

Python Learning

Новые каналы с вакансиями и стажировками для джунов

Друзья, мы запустили новые каналы, где публикуются все свежие вакансии и стажировки

🔺 ВАКАНСИИ

Горячие вакансии с привлекательными офферами для джуниор разработчиков, аналитиков, дизайнеров и QA-специалистов.

👉 ПОДПИСАТЬСЯ

🔺СТАЖИРОВКИ
Стажировки для начинающих специалистов в IT независимо от возраста!

👉 ПОДПИСАТЬСЯ

🔺БИГТЕХ
Вакансии и стажировки
в крупнейших IT-компаниях мира:
NVidia, Apple, T-банк, Яндекс, Google и т. д.

👉 ПОДПИСАТЬСЯ

Читать полностью…

Python Learning

⚙️ contextlib.nested

Модуль contextlib в Python позволяет обрабатывать несколько ресурсов с помощью менеджеров контекста более лаконично. Это полезно, когда работа идёт с большим числом файлов или объектов.

Python Learning 👩‍💻

Читать полностью…

Python Learning

Что будет выведено при выполнении кода?

Пояснение
⬇️

Python использует порядок разрешения методов (MRO) для определения, какой метод вызывать. В данном случае класс D наследует от B и C. MRO для класса D: D -> B -> C -> A. Поэтому вызывается метод process из класса B. Код выполняется корректно.


Python Learning
👩‍💻

Читать полностью…

Python Learning

Вопрос на собеседовании

Что такое методическое разрешение (MRO) в Python, как его проверить и зачем оно нужно?

Ответ ⬇️
Методическое разрешение (MRO) определяет порядок, в котором Python ищет методы и атрибуты в иерархии классов при наследовании. MRO важен для работы с множественным наследованием, так как помогает избежать конфликтов и гарантирует корректное разрешение зависимостей.

MRO можно проверить с помощью атрибута __mro__ или функции mro(). Python использует алгоритм C3-линеаризации для вычисления MRO.


Пример использования ⚙️

class A:
def method(self):
print("Метод класса A")

class B(A):
def method(self):
print("Метод класса B")

class C(A):
def method(self):
print("Метод класса C")

class D(B, C):
pass

print(D.__mro__) # (<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>)

d = D()
d.method() # Метод класса B


Python Learning
👩‍💻

Читать полностью…

Python Learning

Что будет выведено при выполнении кода?

Пояснение
⬇️

Оператор is проверяет, указывают ли обе переменные на один и тот же объект в памяти. Переменные x и y ссылаются на один объект, поэтому x is y возвращает True. Переменная z — новый объект с тем же содержимым, но другой областью в памяти, поэтому x is z возвращает False.


Python Learning
👩‍💻

Читать полностью…

Python Learning

⚙️ sys.addaudithook()

Метод sys.addaudithook() позволяет отслеживать определённые события в Python, такие как импорт модулей, вызовы системных функций и доступ к ресурсам. Это полезно для мониторинга безопасности и отладки.

Python Learning 👩‍💻

Читать полностью…

Python Learning

⚙️ gc.get_objects()

Метод gc.get_objects() из модуля gc позволяет получить список всех объектов, отслеживаемых сборщиком мусора в Python. Это полезно для анализа утечек памяти и отладки.

Python Learning 👩‍💻

Читать полностью…

Python Learning

⚙️ __import__()

Встроенная функция __import__() позволяет динамически импортировать модули во время выполнения программы. Это полезно, когда имя модуля заранее неизвестно или зависит от условий.

Python Learning 👩‍💻

Читать полностью…

Python Learning

⚙️ dis.Bytecode()

Метод dis.Bytecode() из модуля dis позволяет анализировать байт-код Python-функций. Это полезно для оптимизации кода и понимания его работы на уровне интерпретатора.

Python Learning 👩‍💻

Читать полностью…

Python Learning

Вопрос на собеседовании

Как работает weakref в Python, и когда его стоит использовать?

Ответ ⬇️
Модуль weakref позволяет создавать слабые ссылки на объекты, которые не предотвращают их сборку мусора. Это полезно, когда нужно отслеживать объекты без продления их времени жизни, например, в кешах или при управлении зависимостями в больших структурах данных.

Пример использования ⚙️

import weakref

class Data:
def __del__(self):
print("Объект удалён")

obj = Data()
weak_ref = weakref.ref(obj)

print(weak_ref()) # <__main__.Data object at 0x...>
del obj
print(weak_ref()) # None (объект удалён)


Python Learning
👩‍💻

Читать полностью…

Python Learning

Если бы вы купили TRUMP coin на старте на 1000$, то уже сейчас у вас бы было 130.000$

Только вдумайтесь: Утром покупаете монет на 1000$, а уже через день 1000$ превратилась в 130.000$. Неплохо, правда?

Чтобы быть в тренде – достаточно читать Максима Гусева

Там рассказывают кейсы, как с 1000$ колотят состояние, а не просирают все.

Если хотите разбираться в мире крипты, вам сюда: /channel/+fxR-tkBeKItjZjM6

Читать полностью…

Python Learning

⚙️ itertools.permutations()

Метод itertools.permutations() генерирует все возможные перестановки элементов заданной последовательности. Это полезно для задач, связанных с комбинаторикой.

Python Learning 👩‍💻

Читать полностью…

Python Learning

⚙️ shutil.disk_usage()

Метод shutil.disk_usage() из модуля shutil предоставляет информацию о месте на диске, включая общий объём, используемое и доступное пространство. Это полезно для мониторинга состояния файловой системы.

Python Learning 👩‍💻

Читать полностью…

Python Learning

⚙️ inspect.getmembers()

Метод inspect.getmembers() из модуля inspect позволяет получить список всех членов объекта, включая методы, атрибуты и встроенные свойства. Это полезно для анализа структуры классов и объектов во время выполнения.

Python Learning 👩‍💻

Читать полностью…

Python Learning

Что будет выведено при выполнении кода?

Пояснение
⬇️

f-строки – удобный способ отображения информации в нужном формате. Здесь на место {name} подставляется переменная name, а на место {age / 10:.5f} переменная age, деленная на 10. В форматировании указано представление с 5 знаками после запятой.


Python Learning
👩‍💻

Читать полностью…

Python Learning

⚙️ concurrent.futures.as_completed()

Метод concurrent.futures.as_completed() позволяет обрабатывать завершение асинхронных задач в порядке их завершения. Это полезно для параллельной обработки, где важно начать работу с результатами, как только они готовы.

Python Learning 👩‍💻

Читать полностью…

Python Learning

🚫 Антипаттерн недели: Неоптимальная проверка на принадлежность в списке

Использование списков для проверки на принадлежность с оператором in приводит к линейному времени выполнения, что может быть медленным для больших наборов данных.

✔️ Используйте set для проверки на принадлежность, чтобы снизить время выполнения до O(1).

Python Learning 👩‍💻

Читать полностью…

Python Learning

⚙️ typing.Protocol

typing.Protocol из модуля typing используется для определения интерфейсов (протоколов), которые классы должны реализовывать. Это полезно для проверки совместимости типов в статическом анализе.

Python Learning 👩‍💻

Читать полностью…

Python Learning

Что будет выведено при выполнении кода?

Пояснение
⬇️

*args собирает все позиционные аргументы в кортеж (1, 2, 3), а **kwargs собирает именованные аргументы в словарь {'a': 4, 'b': 5}. Код корректен и выводит оба объекта в соответствующем формате.


Python Learning
👩‍💻

Читать полностью…

Python Learning

⚙️ secrets.token_hex()

Метод secrets.token_hex() используется для генерации безопасных случайных токенов. Это полезно для создания уникальных идентификаторов, паролей или API-ключей.

Python Learning 👩‍💻

Читать полностью…
Subscribe to a channel