你使用Python的什么重构工具?
我有一堆我想重命名的类。 其中一些名称很小,名称在其他类名称中重复使用,我不想更改名称。 这些大部分生活在Python代码中,但我们也有一些引用类名的XML代码。
简单的search和replace只能让我到目前为止。 在我的情况下,我想将AdminAction重命名为AdminActionPlug,将AdminActionLogger重命名为AdminActionLoggerPlug,因此第一个的search和replace也会错误地命中第二个。
有没有人有与Python重构工具的经验? 如果他们也可以修复XML文档中的类名,就可以得到奖励分。
与此同时,我尝试了两种与vim有某种整合的工具。
第一个是Rope ,一个带有Vim(和emacs)插件的python重构库。 我尝试了几个重命名,并确实按预期工作。 它允许我预览重构作为差异,这是很好的。 这有点文字驱动,但这对我来说是好的,只需花费更长的时间学习。
第二个是自行车修理工 ,我猜这个名字是赢得的。 也插入vim和emacs。 还没玩过多less,但是我记得很久以前就试过了。
还没有玩够了,还是尝试了更多types的重构,但是我会再做一些黑客攻击。
我强烈推荐PyCharm – 不仅仅是重构。 自从PyCharm在几年前发布第一个PyCharm答案以来,PyCharm的重构支持有了显着的提高。
Python重构可在PyCharm中find (上次在PyCharm 2016.2上检查2016/07/27)
- 更改签名
- 转换成Python包/模块
- 复制
- 提取重构
- 一致
- 反转布尔值
- 使顶层function
- 移动重构
- 推下议员
- 把成员拉起来
- 重命名重构
- 安全删除
XML重构(我在一个XML文件中的上下文菜单中检查):
- 改名
- 移动
- 复制
- 将子查询提取为CTE
- 一致
Javascript重构:
- 在JavaScript中提取参数
- 在JavaScript中更改签名
- 在JavaScript中提取variables
您的IDE可以支持重构! 检查它,埃里克,Eclipse,WingIDE有构build重构工具(包括重命名)。 这是非常安全的重构 – 如果出现问题,IDE不会做参考。
另外考虑添加一些unit testing,以确保您的代码在重构过程中不受影响。
WingIDE 4.0(WingIDE是我select的Python IDE)将支持一些重构,但是我刚刚尝试了最新的beta,beta6,…还有一些工作要做。 撤回方法很好地工作,但重命名符号不。
更新:4.0版本已经修复了所有的重构工具。 他们现在工作很好。
PyCharm有一些重构function。
卟啉反应
重命名重构允许安全地立即执行全局代码更改。 文件内的本地更改是在原地执行的。 重构在纯Python和Django项目中工作。
使用引入variables/字段/常量和内联本地来改善方法中的代码结构, 提取方法来分解更长的方法, 提取超类 ,上推 , 下拉和移动来移动方法和类。
您可以使用sed执行此操作。 诀窍是回想一下,正则expression式可以识别单词边界。 这可以在所有平台上运行,只要你获得了Windows上的工具Cygwin,Mac OS可能需要安装开发工具,我不确定,而Linux有这个开箱即用的function。 所以grep,xargs和sed应该在12小时的阅读手册页和反复试验之后做到这一点;)