Получение вызовов методов и их аргументов из объекта метода

Используя питоновinspect Модуль Я выделил объект метода, теперь мне нужно пройтись по исходному коду в методе, чтобы найти вызовы некоторых других методов и получить их аргументы.

Например, предположим, в следующем классе:

def my_method():
    print('hello')
    foobar('apple', 'pear', 6)
    print('world')
    foobar(1, 2, 3)
    return foobar('a', 'b')

Мне нужно извлечь список аргументов, переданныхfoobar():

[('apple', 'pear', 6), (1, 2, 3), ('a', 'b', None)]

Можно предположить, что все аргументы жестко закодированы и не являются динамическими.

Учитывая метод объекта изinspect пакет, как я могу проверить вызовы метода в указанном методе?

попыткиЯ пытался использовать регулярные выражения сinspect.getsourcelines(method) но это нарушается, если изменяется синтаксис аргумента.Я смотрел на абстрактные синтаксические деревья с питонамиast модуль, но не пришел ни к какому решению.Должен быть способ завершить это, используяinspect но опять же я не пришел ни к какому решению.

Ответы на вопрос(1)

Ваш ответ на вопрос