#тестируемость — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #тестируемость, aggregated by home.social.
-
weakref.finalize: «почти IDisposable» для Python-объектов
Привет, Хабр! Я не знаю, как у вас, а у меня перед глазами все еще маячат толстенные исходники WinForms-эра на C#, где любой порядочный объект, умеющий держать ручку к файлу или сокету, строго реализует IDisposable . Закрыл — молодец, забыл — получи warning от IDE и пару нехороших утечек в production. В Python, увы-ях, аналогичный контракт традиционно строили на del и контекст-менеджерах. Первый: если объект в циклическом мусоре, финализатор может не вызваться вообще; к тому же при выключении интерпретатора порядок разрушения объектов хаотичен. Второй ( with ... as ) шикарен, но требует явного вызова, а значит — дисциплины. С выходом PEP 442 и появлением weakref.finalize мы получили «почти IDisposable» — финализатор, которому не страшны циклы, и который честно отработает даже на shutdown, если правильно обращаться.
https://habr.com/ru/companies/otus/articles/922874/
#python #чистая_архитектура #flask #SQLAlchemy #тестируемость #запросы #расширяемость