Разделение вложенных вызовов на несколько строкPython

Программы на Python
Ответить
Anonymous
 Разделение вложенных вызовов на несколько строк

Сообщение Anonymous »

У меня есть такая функция в Python (заглавные буквы могут обозначать константы, функции и что угодно, но не вызовы функций):

Код: Выделить всё

def f(x):
a = foo1(A, B, foo3(E, foo2(A, B)))
b = foo3(a, E)
return b
и я хочу разбить его на «атомарные» операции следующим образом:

Код: Выделить всё

def f(x):
tmp1 = foo2(A, B)
tmp2 = foo3(E, tmp1)
a = foo1(A, B, tmp2)
b = foo3(a, E)
return b
Другими словами, ровно один вызов функции и одно присвоение на строку.
Есть ли способ реализовать это преобразование исходного кода в Python? Программа, которая принимает строковое представление такой функции и возвращает преобразованную версию. Я знаю, что мне нужно использовать представление AST, но не знаю, как действовать.

Подробнее здесь: https://stackoverflow.com/questions/792 ... eral-lines
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»