2009-12-16 65 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」)