Как работают замыкания (closures) в Python, и как их можно использовать для сохранения состояния между вызовами функции?
Ответ
def counter():
count = 0 # Переменная в объемлющей области видимости
def increment():
nonlocal count # Обращаемся к переменной из объемлющей области
count += 1
return count
return increment
# Пример использования
counter1 = counter()
print(counter1()) # 1
print(counter1()) # 2
counter2 = counter()
print(counter2()) # 1
# Результат выполнения:
# 1
# 2
# 1
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🍾5❤🔥3🤔1
itertools.tee()
для дублирования итераторовitertools.tee()
— это интересная функция из модуля itertools, позволяющая создавать несколько независимых копий одного и того же итератора.✔️ itertools.tee() делает работу с итераторами гибче и удобнее.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤🔥4🔥2🏆2
Модуль contextvars, появившийся в Python 3.7, предоставляет механизм для хранения и управления контекстными переменными, которые сохраняют свое значение в пределах текущего потока или корутины.
✔️ contextvars повышает надежность и предсказуемость асинхронного кода, позволяя безопасно работать с состоянием.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤🔥4🎉2
Pypika позволяет создавать сложные запросы программным способом, избегая ошибок ручного написания SQL-кода и защищая от SQL-инъекций. Это особенно полезно при построении динамических и параметризованных запросов в приложениях.
•
Pypika — отличный выбор, если вам нужно строить запросы к базе данных на лету.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤🔥3
Что такое декораторы с аргументами в Python, и как их можно использовать?
Ответ
def repeat(times):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(times):
result = func(*args, **kwargs)
return result
return wrapper
return decorator
@repeat(3)
def say_hello():
print("Hello!")
say_hello()
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥15👍8🍾3
Модуль ast (Abstract Syntax Tree) позволяет анализировать и модифицировать исходный код Python на уровне его абстрактного синтаксического дерева (AST). Это мощный инструмент для тех, кто хочет динамически изменять код, строить анализаторы или трансформировать Python-программы на лету.
✔️ ast открывает множество возможностей для тех, кто занимается метапрограммированием или созданием собственных инструментов для анализа и оптимизации Python-кода.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥7👍4
aiometer позволяет эффективно управлять количеством одновременно выполняемых асинхронных задач. Это полезно, когда нужно ограничить количество параллельно выполняемых задач, избегая перегрузки системы.
•
aiometer — отличный выбор для случаев, когда нужно контролировать количество параллельных операций, например, при выполнении большого числа запросов к API.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🏆3❤🔥2
Как работает метод
__new__()
в Python?Ответ
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤🔥2🎉2
contextlib.AsyncExitStack
для управления асинхронными ресурсамиAsyncExitStack из модуля contextlib позволяет динамически управлять асинхронными ресурсами, такими как файлы, сетевые соединения или блокировки, создавая стек контекстных менеджеров. Это полезно, когда требуется работать с неизвестным заранее количеством контекстных менеджеров.
✔️ AsyncExitStack позволяет добавлять и обрабатывать несколько контекстных менеджеров в асинхронном режиме, гарантируя корректное завершение работы с ресурсами.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤🔥2🏆1
PyOgre
PyOgre — это связка Python с OGRE (Object-Oriented Graphics Rendering Engine), мощным 3D-движком, написанным на C++. Она позволяет разработчикам создавать игры, демо-версии и другие 3D-приложения, используя Python.
Python — более простой и понятный язык, чем C++, что делает PyOgre более доступным для начинающих разработчиков. PyOgre позволяет использовать Python для создания сложных 3D-приложений, сохраняя при этом высокую производительность OGRE.
Python Learning👩💻
PyOgre — это связка Python с OGRE (Object-Oriented Graphics Rendering Engine), мощным 3D-движком, написанным на C++. Она позволяет разработчикам создавать игры, демо-версии и другие 3D-приложения, используя Python.
Python — более простой и понятный язык, чем C++, что делает PyOgre более доступным для начинающих разработчиков. PyOgre позволяет использовать Python для создания сложных 3D-приложений, сохраняя при этом высокую производительность OGRE.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18😱6🏆3🆒2
Ответ:
Anonymous Quiz
43%
[1], [2], [3]
45%
[1], [1, 2], [1, 2, 3]
4%
[1], [1], [1]
8%
Ошибка выполнения
👍11🍾5🏆3😢2🤔1
Функция sample()
Функция
Python Learning👩💻
Функция
sample()
модуля random
в Python возвращает случайную выборку элементов из последовательности. В первом параметре функции указываем последовательность, во втором параметре — количество элементов, которые мы хотим выбрать случайным образом.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤🔥3🏆3
functools.cache
для кэширования результатовfunctools.cache
— это полезный инструмент для кэширования результатов функций, что позволяет существенно ускорить выполнение программы при многократных вызовах с одинаковыми аргументами. Кэширование помогает избежать повторных вычислений, особенно в случае дорогостоящих операций.✔️ Отличное решение для оптимизации кода и повышения производительности.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤🔥5🏆3
EdgeDB — это база данных и клиентская библиотека для Python, которая предлагает более современный и удобный подход к управлению схемами и запросами по сравнению с традиционными SQL базами данных.
Она поддерживает реляционные данные, но при этом использует запросы в стиле графов и обеспечивает автоматическое управление схемами.
•
EdgeDB — отличный выбор для тех, кто хочет работать с базами данных, избегая сложности традиционного SQL и улучшая удобство работы с данными.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤🔥4🎉2
Модуль zoneinfo, добавленный в Python 3.9, позволяет работать с временными зонами, используя базу данных IANA.
✔️ Отличное решение для точного управления датами и временем с учётом локальных особенностей.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤🔥4🏆3
fastjsonschema — это новая библиотека, выпущенная в 2024 году, которая обеспечивает высокопроизводительную валидацию JSON-документов на основе схем.
Она значительно быстрее большинства аналогов, таких как jsonschema, и идеально подходит для проектов, где критична скорость обработки данных.
•
fastjsonschema — отличный выбор для тех, кому важна производительность при работе с JSON-схемами.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤🔥2🏆2🥰1
Как работают дескрипторы в Python и в каких случаях их полезно использовать?
Ответ
Пример использования
class Descriptor:
def __get__(self, instance, owner):
return instance._value
def __set__(self, instance, value):
if value < 0:
raise ValueError("Значение должно быть положительным!")
instance._value = value
class MyClass:
value = Descriptor()
def __init__(self, value):
self.value = value
obj = MyClass(10)
print(obj.value) # 10
obj.value = -5 # Ошибка: Значение должно быть положительным!
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🏆4❤🔥3
Очистка элементов в последовательности
Иногда возникает необходимость в удалении ненужных объектов последовательности. Для этого используют
Первым аргументом передаётся контейнер, к примеру список. Вторым аргументом — логические значения, соответствующие элементам в контейнере.
Если логическое значение равно
Python Learning👩💻
Иногда возникает необходимость в удалении ненужных объектов последовательности. Для этого используют
itertools
, а именно метод compress
.Первым аргументом передаётся контейнер, к примеру список. Вторым аргументом — логические значения, соответствующие элементам в контейнере.
Если логическое значение равно
True
или 1
, то элемент остаётся в последовательности, иначе — удаляется из нее.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤🔥7🏆3