重构函数定义

2 投票
3 回答
1520 浏览
提问于 2025-04-16 03:17

我在Eclipse上使用Pydev来写Python代码。我对Pydev和Eclipse都很陌生。不过我很喜欢一个功能,就是可以通过右键点击 -> 重构 -> 重命名...来重命名一个变量。

我在想,如果我改变一个函数的定义,是否有类似的功能可以在整个项目中更改这个函数的所有引用。

比如说,假设我最开始有:

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

在Eclipse或Pydev中,有没有什么方法可以自动把

thisVar = myFunction(a, b)

改成

thisVar = myFunction(a, b, c)

谢谢你的帮助。

3 个回答

0

我知道这个问题已经有4年了,但Eclipse这个工具可以对Java的方法进行重构,也就是可以修改方法的定义和参数。根据我所知,Pydev这个工具对Python的函数并不支持这种功能。

0

我觉得在Eclipse的Pydev里没有重构方法。至于为什么没有,大家可以参考这里... 这和Python变量的构造有关。

为什么Eclipse的Python没有神奇的重构功能?

2

没有哪个开发工具会支持这个,因为当你调用一个函数时,它需要的变量不一定总是c

我建议把参数c设为可选的,像这样:

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

当你发现确实需要c的时候,你可以用三个参数来调用这些语句,比如myFunction(10,20, c = 2000)

撰写回答