Я хочу добавить параметр к функции. Мне нужно изменить все вызовы функций, добавив этот параметр во весь документ и среду. Есть ли в pycharm простой способ изменить их все сразу?

def function(param1, param2):
   blabla

Сразу изменить на:

def function(param1, param2, param3):
   blabla
1
Emilie 8 Окт 2019 в 00:42
Кто может помочь? : /
 – 
Emilie
8 Окт 2019 в 18:09

2 ответа

Pycharm позволяет выполнять поиск и заменять с помощью Regex. Было бы лучше, если бы вы разместили свое фактическое имя и параметры функции, но, используя свой пример, следующее регулярное выражение должно получить все ваши функции с param1 и param2

def function\([a-zA-Z0-9_\-\.]+\,[a-zA-Z0-9_\-\.\ ]+\)

Делать control+f в PyCharm проверьте регулярное выражение и вставьте его. потом control+alt+shift+j который выберет все вхождения, вы щелкните стрелку вправо и добавьте свой параметр.

0
C. Lewis 9 Окт 2019 в 21:49

Рассмотрите возможность использования рефакторинга Change Signature (Ctrl + F6 или Refactor -> Change Signature в определении функции).

Справка: https://www.jetbrains.com/ help / pycharm / change-signature.html # change-function-signature

0
user2235698 13 Окт 2019 в 22:56
Это то, что я уже сделал ... но если я управляю с помощью Ctrl + Shift + F, я все равно обнаружил несколько неизмененных вызовов ... что я сделал не так?
 – 
Emilie
21 Окт 2019 в 19:37
Это может быть ошибка PyCharm, если у вас есть минимальный рабочий пример, сообщите о проблеме youtrack.jetbrains.com/issues / PY
 – 
user2235698
22 Окт 2019 в 23:55