如何制作wxPython类浏览器

如何制作wxPython类浏览器,python,wxpython,Python,Wxpython,如何在wxPython中实现类浏览器?我应该扫描整个代码,还是wxPython中有一个函数用于此功能?您的问题并不完全清楚您想要什么,但我将做出一些假设,并向您展示如何对您所问的问题进行一种可能的解释 我假设您有一个包含Python脚本内容的字符串,或者来自剪切粘贴存储库的片段,或者其他任何内容,您只想知道在该源代码字符串中定义的顶级类 您可能不想执行该代码。首先,谁知道任意奇怪的代码会对您的环境造成什么影响?另一方面,如果您正在构建一个类浏览器,您可能希望它在依赖于您可能无权访问的其他代码的代

如何在wxPython中实现类浏览器?我应该扫描整个代码,还是wxPython中有一个函数用于此功能?

您的问题并不完全清楚您想要什么,但我将做出一些假设,并向您展示如何对您所问的问题进行一种可能的解释

我假设您有一个包含Python脚本内容的字符串,或者来自剪切粘贴存储库的片段,或者其他任何内容,您只想知道在该源代码字符串中定义的顶级类

您可能不想执行该代码。首先,谁知道任意奇怪的代码会对您的环境造成什么影响?另一方面,如果您正在构建一个类浏览器,您可能希望它在依赖于您可能无权访问的其他代码的代码上工作,因此您无法执行它

所以,您需要解析它。要做到这一点,最简单的方法是让Python使用以下模块为您完成:

当我对Python 3.3的stdlib中的ast.py运行此命令时,我得到以下结果:

class NodeVisitor(object)
    def visit
    def generic_visit
class NodeTransformer(NodeVisitor)
    def generic_visit

如果那不是你想要的,你必须解释你想要什么。例如,如果您想要所有的类定义,甚至是函数和方法中的本地类定义……那么,上面列出的这两个类的名称应该会有所帮助。

您必须更详细地描述“类浏览器”的含义。您正在尝试浏览当前交互环境中的所有类吗?在一个脚本中?在脚本和它导入的所有内容中?在一个充满脚本的目录中?在以某种方式定义的“项目”中?同时,无论您的答案是什么,wx都不会有任何东西用于扫描Python源代码或反省交互环境或诸如此类的东西;它只是一个GUI库。但是Python标准库有各种各样的东西——对于活动对象、解析源代码等等@abarnert,我的意思是我想在一个字符串中获取所有类(以及它们的函数,如果可能的话)。谢谢你的链接,我来看看。“字符串”的意思是“一大块Python源代码”?“所有类”是否包括在函数或方法中定义的类,甚至是动态创建的类?还是仅仅是顶级课程?或者,如果执行/导入代码,最终会定义哪个类?或者…?我可能误解了你的意思,但是ulipad,一个基于wxpython的编辑器,有一个内置的类浏览器。你可以看看他们是怎么做的。
class NodeVisitor(object)
    def visit
    def generic_visit
class NodeTransformer(NodeVisitor)
    def generic_visit