home.social

#тестируемость — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #тестируемость, aggregated by home.social.

  1. weakref.finalize: «почти IDisposable» для Python-объектов

    Привет, Хабр! Я не знаю, как у вас, а у меня перед глазами все еще маячат толстенные исходники WinForms-эра на C#, где любой порядочный объект, умеющий держать ручку к файлу или сокету, строго реализует IDisposable . Закрыл — молодец, забыл — получи warning от IDE и пару нехороших утечек в production. В Python, увы-ях, аналогичный контракт традиционно строили на del и контекст-менеджерах. Первый: если объект в циклическом мусоре, финализатор может не вызваться вообще; к тому же при выключении интерпретатора порядок разрушения объектов хаотичен. Второй ( with ... as ) шикарен, но требует явного вызова, а значит — дисциплины. С выходом PEP 442 и появлением weakref.finalize мы получили «почти IDisposable» — финализатор, которому не страшны циклы, и который честно отработает даже на shutdown, если правильно обращаться.

    habr.com/ru/companies/otus/art

    #python #чистая_архитектура #flask #SQLAlchemy #тестируемость #запросы #расширяемость