2009-12-16 71 views
4

警告,这是一个纯粹懒惰的查询!随着我的项目的发展,一个班级里的功能也是如此。每个.py文件我也有许多类。所以我想做的是重新排序他们的功能名称的组织[对不起,英国在这里,我已经妥协了字母上的'z'在Alphabetizing ;-)]。Python类中的Alphabetizing函数

目前如:

class myClass(): 
    stuff 
    def __init__(): 
     do stuff 
    def b(): 
     also do stuff 
    def c(): 
     do other stuff 
    def a(): 
     do even more stuff 

..和便于查找的,我想重新安排到:

class myClass(): 
    stuff 
    def __init__(): 
     do stuff 
    def a(): 
     do even more stuff   
    def b(): 
     also do stuff 
    def c(): 
     do other stuff 

单纯出于美容的原因,因为它使搜索的相关功能更直观。我显然希望保持初始化()等在该类的顶部。

现在,我可以(但还没有)做到这一点与一个python脚本读入.py该类居住作为一个文本文件,并做了一吨的字符串操纵。但我不知道有没有更好的方法来做到这一点?也许有一种工具可以在某个地方使用?我有一个很好的狩猎,但我真的找不到我可以使用的任何东西。我使用的是emacs,所以也许有一个很大的5分钟组合序列可以实现魔法(eg),但是我在python模式下看不到任何东西!

最后,我想一些方法能够可视化和公开类结构/文档字符串。当我说可视化结构时,我的意思是,例如,当myClass.a()调用myOtherClass.g()时,这将是一个链接,所以我可以看到什么调用了什么, (即,myClass使用什么功能/类)或整体(这里是一堆文件,它们如何“连接”?)

当我说宣传这个类时,我猜我意思就像您在eg1,eg2中看到的API文档。

+7

“它使相关函数的搜索更加直观”不,它很混乱,方法函数应该按*做*分组,重新拼写。构造函数,访问器,操作符。 – 2009-12-16 14:05:43

回答

10

我没有解决你的问题,但我有一个很强烈的意见:如果方法在你的类的数量变得过大,无法找到他们,你应该考虑拆分数量减少,或许班级变成更小的班级。

适用于函数和方法适用于类和凝聚力同样的原则。

4

我不知道排序按名称的方法是这样一个伟大的想法:

这就是你所看到的浏览OLE对象时,它真的是很难理解什么是相关的方法是所有的地方,因为他们不启动由同一封信。

之前只是“接近”,比如我宁愿看到“打开”,中间没有其他无关的方法...

你的问题是列出/视图很容易在你的类的功能?

下面是一个简单的一招我在Emacs使用:

的Mx发生

正则表达式:^ * DEF

试试看吧...(用于与一些其他语言的相同作品不同的正则表达式(例如:“^ sub”)