2010-08-25 7 views
1

Я использую Pydev на Eclipse для написания кода на Python. Я новичок в Pydev и Eclipse. Мне нравится функция, где я могу использовать rightClick -> Рефакторинг -> Переименовать ..., чтобы переименовать переменную.Рефакторинг определения функции

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

Например, предположим, что я изначально есть:

def myFunction(a, b): 
    body of the function 
    return blah 

Я использую эту функцию в других файлах проекта. Скажем,

thisVar = myFunction(a, b) 

Теперь я чувствую необходимость изменить определение функции для учета дополнительного параметра.

def myFunction(a, b, c): 
    body of the function 
    return blah 

Есть ли что-то в затмении или PyDev таким образом, что он будет автоматически изменять

thisVar = myFunction(a, b) 

в

thisVar = myFunction(a, b, c) 

Спасибо за вашу помощь.

+1

Я никогда не использовал Eclipse и pydev (я использую базовые текстовые редакторы), но если вы просто хотите изменить 'myFunc (a, b)' to 'myFunc (a, b, c)' вы не можете найти и заменить? – avacariu

+0

@ vlad Это то, что делает рефактор PyDev: он выполняет поиск и замену. Я не рекомендую использовать эту функцию: она меняет слова в комментариях, строках ... –

+1

Если PyDev предлагает встроенный метод рефакторинга, то вы можете иметь myFunction (a, b) вызов myNewFunction (a, b, c), затем введите myFunction, а затем переименуйте myNewFunction. Я думаю, что больше шагов, чем вы могли бы пройти, и, учитывая реакцию Бо, я подозреваю, что вряд ли он будет работать надежно, если он доступен. Но это может быть полезный подход. –

ответ

2

нет IDE может поддерживать это, как при вызове функции она требует переменной, которая не может быть c все время,

, что я предлагаю сохранить параметр с, как опция, как

thisVar = myFunction(a, b, c = None) 

и когда вы действительно понимаете, что это требует c, вы можете вызывать эти утверждения с помощью 3 параметров или myFunction(10,20, c = 2000)

+1

+1 На самом деле, маловероятно, что на стороне вызова есть 'c'. – delnan

0

Я не думаю, что методы рефакторинга существуют в Pydev of Eclipse. По причинам, почему, пожалуйста, смотрите здесь для справки ... он должен сделать с конструкцией питона переменных

why doesn't eclipse-python have magic refactor?

0

Я знаю, что это 4-х лет, но Eclipse, для Java может рефакторинга, рефакторинга определения методов и изменения аргументы. Насколько я знаю, Pydev не поддерживает поддержку функций python

Смежные вопросы