Python类中的字母顺序功能

时间:2009-12-16 13:51:01

标签: python class visualization publishing alphabetized

警告,这是一个纯粹的懒惰查询!随着我的项目的发展,一个类中的函数数量也在增加。我还有每个.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脚本执行此操作,该脚本读取.py中的.py文本文件所在的.py并执行字符串操作。但我想知道有更好的方法吗?也许有一个我可以在某处使用的工具?我有一次很好的打猎,但我找不到任何可以使用的东西。

我正在使用emacs,所以也许有一个很大的5分钟组合序列可以完成魔术(eg),但我在python模式下看不到任何东西!

最后,我想要一些方法来可视化和宣传类结构/文档字符串。

当我说visualize structure时,我的意思是,例如,myClass.a()调用myOtherClass.g(),这将是一个链接,所以我能够看到什么调用什么,或者在类上逐个类(即myClass使用什么函数/类?)或整体(这里是一堆文件,他们如何'连接'?)

当我说宣传课程时,我想我的意思是您在eg1eg2中看到的API文档。

2 个答案:

答案 0 :(得分:11)

我没有解决你的问题的方法,但我有一个非常强烈的意见:如果你的课程中的方法数量变得如此之大,你很难找到它们,你应该考虑减少数量,也许是通过拆分分为较小的一类。

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

答案 1 :(得分:4)

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

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

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

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

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

发生M-x

正则表达式:^ * def

尝试一下......(对于其他一些使用不同正则表达式的语言也是如此(例如:“^ sub”)