我的项目结构如下
??? app
? ??? Country
? ? ??? views.py
? ??? Customer
? ? ??? views.py
Run Code Online (Sandbox Code Playgroud)
模块“Country”文件夹是我尝试将其重命名为“Countries”的地方,并且每次使用它时,它也被导入Customer/views.py。
from app.Country.views import *
....
Run Code Online (Sandbox Code Playgroud)
根据本教程Refactoring Python Applications for Simplicity,我尝试如下:
>>> from rope.base.project import Project
>>>
>>> proj = Project('app')
>>>
>>> Country = proj.get_folder('Country')
>>>
>>> from rope.refactor.rename import Rename
>>>
>>> change = Rename(proj, Country).get_changes('Countries')
>>> proj.do(change)
Run Code Online (Sandbox Code Playgroud)
执行脚本后,模块文件夹'Country'被更改为'Countries',但是它在Customer/views.py中使用的实例没有相应改变,Customer/views.py中的import语句仍然存在
from app.Country.views import *
Run Code Online (Sandbox Code Playgroud)
我预计它应该from app.Countries.views import *在重构后更改为,但它没有。
我还应该做些什么来成功地重构它?谢谢。
您可以使用proj.get_module('app.Country').get_resource()重命名模块。
from rope.base.project import Project
from rope.refactor.rename import Rename
proj = Project('app')
country = proj.get_module('app.Country').get_resource()
change = Rename(proj, country).get_changes('Countries')
print(change.get_description())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2126 次 |
| 最近记录: |