Альтернативы функциональности «извлечения метода» Pycharm для скриптов? - PullRequest
0 голосов
/ 11 июля 2019

Я хочу реорганизовать мой основанный на скриптах код 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...