Я хочу реорганизовать мой основанный на скриптах код Python, извлекая функцию из частей моего кода.
Пример:
a = 5
b = [1,2,3]
a = 6 # < this should be extracted
b = b.append(4) # < this should be extracted
print("a:", a)
print("b:", b)
Использование функциональности метода извлечения Pycharm приводит к такому результату:
a = 5
b = [1,2,3]
def method_name():
global a, b
a = 6
b = b.append(4)
method_name()
print("a:", a)
print("b:", b)
В Рефакторинг вPyCharm: как извлечь метод? уже указано, что это извлечение метода оптимизировано не для скриптов Python, а только для контекста ООП / класса.
Я хочу избегать global
, так как он не является поточно-ориентированным и не защищен (см .: Как написать функцию с выходными параметрами (вызов по ссылке) ).
Есть ли обходной путь / альтернатива для автоматического рефакторинга, когда я хочу вернуть все параметры обратно вызывающей стороне , как это рекомендуется в Как мне написать функцию с выходными параметрами (вызов поссылка)
Чтобы результат выглядел следующим образом:
def method_name(a, b):
a = 6
b = b.append(4)
return a, b
a, b, = method_name(a, b)