Разработчик Тиан Гао создал инструмент с открытым исходным кодом для мониторинга переменных при отладке Python под названием Watchpoints.
Инструмент ведет себя точно так же, как программа gdb (для отладки кода на C и C++).
$ python3 -m pip install watchpoints
Для отслеживаемой любой переменной используется функция watch.
from watchpoints import watch a = 0 watch(a) a = 1
При изменении переменной информация о ее значении выводится через стандартный поток вывода данных.
====== Watchpoints Triggered ====== Call Stack (most recent call last): <module> (my_script.py:5): > a = 1 a: 0 -> 1
В данных о переменной будет храниться информация о строке, в которой была изменена переменная, стеке вызовов, предыдущем и текущем значении переменной.
from watchpoints import watch
a = []
watch(a)
a = {} # Trigger
a["a"] = 2 # Trigger callback запускается при переназначении переменной «a» и при изменении объекта, назначенного переменной.Инструмент также позволяет наблюдать за переменной/объектом в любом месте, и функция callback запускается независимо от того, как функцию выполняет программа.
from watchpoints import watch
def func(var):
var["a"] = 1
a = {}
watch(a)
func(a) watch может отслеживать не только переменную, но и атрибуты, и элемент словаря и списка. Это может помочь сузить круг поиска конкретных объектов.from watchpoints import watch
class MyObj:
def __init__(self):
self.a = 0
obj = MyObj()
d = {"a": 0}
watch(obj.a, d["a"]) # Yes you can do this
obj.a = 1 # Trigger
d["a"] = 1 # Trigger callback.watch(a, callback=my_callback) # Or set it globally watch.config(callback=my_callback)
watch.config(pdb=True)
Чтоб не импортировать функцию в каждый отдельный файл, можно сделать ее глобальной, используя функцию install:
watch.install() # or watch.install("func_name") and use it as func_name() Open source-инструмент watchpoints распространяется под лицензией Apache 2.0 и доступен на GitHub.
На фоне роста спроса на ликвидность в бычьем рынке 2025 года, криптозаймы снова выходят на…
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…