amarao (amarao_san) wrote,
amarao
amarao_san

Category:

Бездны отладки питона: физическое расположение кода инстанса класса

Дано: метод класса, который вызывает метод из объекта, который ему передают посредством super что-то там. Короче, бездна метапрограммирования.

Задача: выяснить, в конкретном месте конкретного кода, откуда (из какого файла) этот код выполняется.

Решение: для объекта, который нас интересует, надо найти любой не built-in метод, и посмотреть на его __code__.

Например, в коде do_request для объета request делается do_request.

Делаем raise Exception(str(request.do_request.__code__)) и имеем ответ:

Exception: <code object send at 0x2a18630, file "/usr/lib/python2.7/dist-packages/webob/request.py", line 1276>
Tags: python
Subscribe

  • systemd-networkd, netlink и arp флуд

    Нереально странный баг пофикшен с помощью eBPF затычки. Для меня большой неожиданностью является реакция на него.…

  • Rust soundness

    Каждый раз, когда я сталкиваюсь с маленькими "но" в Rust'е, это ощущение тщательной продуманности. Например, простейшие fold-функции для итераторов:…

  • still_ntp

    В ходе локального мозгового штурма у меня родилась суперидея. Надо написать ntp сервер, который может отдавать указанную дату. Т.е. сказали при…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments