TGViewer
Channel Public Channel
Python Learning

Python Learning

@python_per_month

№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
Subscribers
28.2K
Photos
2K
Videos
8
Links
1K

Showing posts older than #3248 · Back to latest

Older Posts 20 shown
Post #3247 5.22K
⚙️ sys.addaudithook()

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

Python Learning 👩‍💻
  • 👍 13
  • 🔥 2
Post #3246 4.74K
⚙️ importlib.reload()

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

Python Learning 👩‍💻
  • 👍 19
  • 🔥 3
  • ❤‍🔥 1
Post #3245 5.14K
⚙️ gc.get_objects()

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

Python Learning 👩‍💻
  • 👍 16
  • ❤‍🔥 1
Post #3243 4.9K
⚙️ sys._getframe()

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

Python Learning 👩‍💻
  • 👍 13
  • 🔥 2
  • ❤‍🔥 1
Post #3242 5.05K
⚙️ __import__()

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

Python Learning 👩‍💻
  • 👍 21
  • 🔥 2
Post #3241 4.96K
  • 👍 18
  • 😢 4
  • 💔 1
Post #3240 5.33K
⌛ Что будет выведено при выполнении кода?

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


Python Learning
👩‍💻
  • 👍 16
  • 🔥 2
Post #3239 5.05K
⚙️ dis.Bytecode()

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

Python Learning 👩‍💻
  • 👍 7
  • ❤‍🔥 2
Post #3238 5.05K
🚫 Антипаттерн недели: Использование range(len()) вместо enumerate()

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

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

Python Learning
👩‍💻
  • 👍 47
  • 😱 5
  • ❤‍🔥 3
  • 🍾 1
Post #3237 5.38K
❓ Вопрос на собеседовании

Как работает 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
👩‍💻
  • 👍 11
  • ❤‍🔥 1
Post #3235 5.39K
⚙️ __slots__

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

Python Learning 👩‍💻
  • 👍 22
  • ❤‍🔥 1
Post #3233 4.81K
  • 👍 9
  • 😢 4
  • 😁 1
  • 🤔 1
Post #3232 4.97K
⌛ Что будет выведено при выполнении кода?

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


Python Learning
👩‍💻
  • 👍 7
Post #3231 4.58K
⚙️ itertools.permutations()

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

Python Learning 👩‍💻
  • 👍 17
  • ❤‍🔥 1
Post #3230 4.55K
⚙️ concurrent.futures.ThreadPoolExecutor()

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

Python Learning 👩‍💻
  • 👍 13
  • 😱 4
  • 🏆 2
Post #3229 4.67K
⚙️ shutil.disk_usage()

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

Python Learning 👩‍💻
  • 👍 20
  • ❤‍🔥 4
  • 💯 4
Post #3228 4.97K
❓ Вопрос на собеседовании

Как работает 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
👩‍💻
  • 👍 17
  • 🔥 4
  • 🎉 2
Post #3227 4.25K
⚙️ inspect.getmembers()

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

Python Learning 👩‍💻
  • 👍 11
  • 🔥 3
  • 💯 2
Post #3223 4.26K
⌛ Что будет выведено при выполнении кода?

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


Python Learning
👩‍💻
  • 🔥 3
  • 👍 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →