从源代码开始/结束python类

时间:2011-04-07 06:53:11

标签: python ide intellisense

假设我有一个文件,其中定义了几个类,如下所示:

class A:
    def somemethod(self): pass
    ...more methods...

class B:
    def othermethod(self): pass
    ....even more methods...

如何找出源A类中哪一行开始和结束,哪一行B类开始和结束?如果将文件加载到编辑器中,则标记文本“A类”并希望在A类定义的末尾将方法插入到源中,我该如何做?我认为将源文件作为纯文本文件读取效果不会很好。

有没有办法找出定义了哪些类,它们实现的方法,它们子类的类等,而无需导入和检查?

底线:我需要找出能够操作源的开始和结束的位置,例如向类添加方法,向现有方法添加装饰器,从现有类中提取所有方法以及创建新的方法相同的方法等。

目标是在python IDE / Editor中创建intellisense。

2 个答案:

答案 0 :(得分:2)

我建议使用标准库Python类浏览器(pyclbr)作为起点。

答案 1 :(得分:0)

考虑解析抽象语法树,而不是原始线。甚至Python,使用其行而不是基于括号的语法,可以使用分号在一行上排列多个语句,或者使用反斜杠在两行中传播语句。

有很多方法可以做到这一点,但请参阅内置包ast