說我得到了與它定義了若干類文件,像這樣:獲取的開始/結束
class A:
def somemethod(self): pass
...more methods...
class B:
def othermethod(self): pass
....even more methods...
我怎樣才能找到在源類開始其行,結束,哪一行代碼類B開始和結束?如果將文件加載到編輯器中,將文本標記爲「A類」,並且想要在A類定義的末尾插入一個方法到源代碼中,那麼我該怎麼做?我不認爲將源文件作爲純文本文件讀取會很好。
有沒有辦法找出什麼類的定義,他們實現的方法,他們的子類等沒有進口和檢查?底線:我需要找出事情的起點和終點,以便能夠操縱源,例如向類中添加方法,向現有方法添加裝飾器,從現有類中提取所有方法以及創建新的方法使用相同的方法等。
目標是在python IDE/Editor中創建智能感知。
我明白了,這會起作用,但是如果源僅作爲文本可用,而不是可以導入的pythonpath中的文件呢?無論如何,我可以欺騙python導入它嗎?以某種方式操縱sys.modules? – Weholt 2011-04-07 11:19:39
暫時將包含相關文件的目錄作爲'sys.path [0]'插入,允許'pyclbr'查找而不需要對模塊代碼進行任何更改,這非常簡單。另一種選擇是使用'pyclbr'作爲編寫你自己的靜態分析器的靈感。如果'pyclbr'完成了你所需要的一切,那麼前一個選項可能會更好,但是如果你想對令牌流做更多的事情,那麼自定義分析器可能最終變得非常必要。 – ncoghlan 2011-04-07 11:35:10