What refactoring tools do you use for Python?我有一堆要重命名的类。 其中一些名称较小,并且该名称在其他类名称中重复使用,我不希望该名称更改。 其中大多数都存在于Python代码中,但是我们也有一些引用类名的XML代码。 简单的搜索和替换只能使我到目前为止。 就我而言,我想将AdminAction重命名为AdminActionPlug,将AdminActionLogger重命名为AdminActionLoggerPlug,因此第一个的搜索和替换也将错误地命中第二个。 有没有人有使用Python重构工具的经验? 如果他们还可以修复XML文档中的类名,则有加分。 同时,我已经尝试了两个与vim集成在一起的工具。 第一个是Rope,一个Python重构库,带有Vim(和emacs)插件。我尝试了几次重命名,这确实按预期工作。它使我可以将重构作为差异进行预览,这很好。它有点受文本驱动,但是对我来说没关系,只是需要更长的时间来学习。 第二个是自行车修理工,我想他会赢得积分。还可以插入vim和emacs。还没有玩太多,但是我记得很久以前尝试过。 还没有玩完,或者尝试了更多类型的重构,但是我将对它们进行更多的修改。 我强烈建议您使用PyCharm-不仅限于重构。自从几年前在这里发布第一个PyCharm答案以来,PyCharm的重构支持已大大改善。 PyCharm中可用的Python重构(最近在PyCharm 2016.2中检查2016/07/27)
XML重构(我在XML文件的上下文菜单中检入了):
JavaScript重构:
WingIDE 4.0(WingIDE是我选择的python IDE)将支持一些重构,但是我只是尝试了最新的beta,beta6和...,仍然有很多工作要做。撤回方法效果很好,但"重命名符号"却不能。 更新:4.0版本修复了所有重构工具。他们现在工作很好。 我来看看Bowler(https://pybowler.io)。 比起绳索,它更适合直接从命令行使用,并鼓励编写脚本(一次性脚本)。 PyCharm具有一些重构功能。
您的IDE可以支持重构!! 还可以考虑添加一些单元测试,以确保您的代码在重构期间不会受到影响。 您可以使用sed执行此操作。诀窍是要记住正则表达式可以识别单词边界。只要您拥有工具,该工具就可以在所有平台上运行,在Windows上为Cygwin,Mac OS可能需要安装dev工具,我不确定,Linux可以直接使用。因此,在阅读手册页和反复试验12小时后,grep,xargs和sed应该可以解决问题。 |