Python: отслеживание строк исходного кода, которые активирует функция Python - PullRequest
0 голосов
/ 03 июня 2019

Мне известно, как найти расположение функции Python в ее исходном коде с помощью модуля inspect с помощью

import inspect
inspect.getsourcefile(random_function)

Однако, , пока работает функция Pythonили после запуска , как найти все фрагменты исходного кода, которые он использовал / на которые ссылался во время отдельного запуска?

Например, если бы я запустил random_function(arg1=1, arg2=2)против random_function(arg1=1, arg5=3.5), я хотел бы знать, какие разные части модуля использовались каждый раз.

Есть ли что-нибудь подобное примеру здесь ?Буду признателен за любые советы.

1 Ответ

0 голосов
/ 03 июня 2019

Вы можете сделать это, получив информацию о байт-коде с помощью модуля dis. Например:

import dis
import numpy as np

def main():
    array = np.zeros(shape = 5)

if __name__ == '__main__':
    print(dis.dis(main))

результат:

  5           0 LOAD_GLOBAL              0 (np)
              2 LOAD_ATTR                1 (zeros)
              4 LOAD_CONST               1 (5)
              6 LOAD_CONST               2 (('shape',))
              8 CALL_FUNCTION_KW         1
             10 STORE_FAST               0 (array)
             12 LOAD_CONST               0 (None)
             14 RETURN_VALUE
...