7

警告,这是一个纯粹的懒惰查询!随着我的项目的发展,一个类中的函数数量也会增加。每个 .py 文件也有许多类。所以我想做的是将它们重新排序为函数名称是按字母顺序组织的[对不起,这里是英国,我已经在 Alphabetizing 中对 'z' 进行了极大的妥协 ;-)]。

例如目前:

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

纯粹是出于美观的原因,因为它使搜索相关功能更加直观。我显然希望将init () 等保持在类的顶部。

现在,我可以(但还没有)使用 python 脚本执行此操作,该脚本将类(es)作为文本文件驻留在 .py 中读取,并进行大量字符串操作。但我想知道有没有更好的方法来做到这一点?也许有一个我可以在某处使用的工具?我进行了一次很好的狩猎,但我真的找不到任何我可以使用的东西。

我正在使用 emacs,所以也许有一个 5 分钟的大组合键序列可以发挥作用(例如),但我在 python 模式下看不到任何东西!

最后,我想要一些能够可视化和公开类结构/文档字符串的方法。

当我说可视化结构时,我的意思是,例如,在 myClass.a() 调用 myOtherClass.g() 的地方,那将是一个链接,所以我可以逐个查看调用了什么类基础(即 myClass 使用哪些函数/类?)或整体(这里有一堆文件,它们如何“连接”?)

当我说公开课程时,我想我的意思是您在eg1 和 eg2看到的 API 文档。

4

2 回答 2

8

我对您的问题没有解决方案,但我有一个非常强烈的意见:如果您的类中的方法数量变得如此之多,您很难找到它们,您应该考虑减少数量,也许通过将类拆分成更小的类那些。

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

于 2009-12-16T13:57:11.620 回答
3

我不确定按名称排序方法是否是个好主意:

这就是您在浏览 OLE 对象时看到的内容,并且很难理解任何内容,因为相关方法无处不在,因为它们不是以相同的字母开头。

我宁愿在“关闭”之前看到“打开”,例如,中间没有所有其他不相关的方法......

您的问题是轻松列出/查看班级中的功能吗?

这是我在 emacs 中使用的一个简单技巧:

Mx 发生

正则表达式:^ *def

试一试...(对于具有不同正则表达式的其他一些语言,同样适用(例如:“^sub”)

于 2009-12-16T14:06:47.393 回答