在Python类中按字母顺序排列函数
警告,这个问题有点懒惰!随着我的项目发展,类里面的函数数量也在增加。而且每个.py文件里有很多类。所以我想把这些函数名重新排序,按照字母顺序排列(抱歉,我在这里是英国人,已经在字母排序上妥协了很多,使用了'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文件,把它当作文本文件来处理,然后进行大量的字符串操作。但我在想有没有更好的方法?也许有工具可以用?我找了很久,但没找到什么合适的。
我在用emacs,所以也许有个五分钟的快捷键组合可以解决这个问题(比如说),但我在python模式下没看到任何相关的!
最后,我想要一种方法来可视化和展示类的结构和文档字符串。
当我说可视化结构时,我的意思是,比如说,myClass.a() 调用 myOtherClass.g(),那应该是一个链接,这样我就能看到哪些调用了哪些,不管是按类来(也就是说,myClass用到了哪些函数/类?)还是整体来看(这里有一堆文件,它们是怎么“连接”的?)
2 个回答
我觉得按名字排序方法并不是个好主意:
你在浏览OLE对象时会看到这种情况,相关的方法分散得很乱,因为它们的名字开头字母不一样,根本搞不清楚。
我更希望看到“open”紧跟在“close”前面,比如说,中间没有其他不相关的方法...
你的问题是想要轻松列出或查看你类里的函数吗?
这里有个我在emacs里用的简单技巧:
M-x occur
正则表达式:^ *def
试试看...(在其他一些语言中也可以用类似的方法,只是正则表达式不同,比如:“^sub ”)
我没有办法直接解决你的问题,但我有一个很强的看法:如果你发现一个类里面的方法数量太多,以至于你很难找到它们,那你应该考虑减少这个数量,可能可以把这个类拆分成几个小的类。
对于函数和方法的凝聚力原则,同样也适用于类。