从sou获取python类的开始/结束

2024-07-04 14:23:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

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

有没有办法在不导入和检查的情况下找出定义了哪些类,实现了哪些方法,子类化了哪些类?在

底线:我需要找出事情的起点和终点,以便能够操作源代码,例如向类添加方法、向现有方法添加装饰器、从现有类提取所有方法以及使用相同方法创建新方法等等

目标是在pythonide/编辑器中创建intellisense。在


Tags: 文件方法self定义源代码defmorepass
2条回答

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

从解析抽象语法树的角度来考虑,而不是从原始行来考虑。即使是使用基于行而不是括号的语法的Python,也可以用分号在一行上排列多个语句,或者用反斜杠将一个语句分散在两行上。在

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

相关问题 更多 >

    热门问题