帮助开发人员更快地阅读类层次结构的工

Cal*_*eng 7 python django class

在我的日常工作中,我主要花时间在Python/Django和Objective-C/CocoaTouch和js/jQuery上.

我的选择编辑器是vimPython/Django和js/jQuery以及xcodeObjective-C/CocoaTouch.

我的开发速度的一个瓶颈是我读取现有代码的速度,特别是我使用的开源库.

例如,在Python/Django中,当我遇到django开发人员引入的一些新功能时,我很好奇并开始手动探索代码库.例如,当从django 1.3开始引入基于类的视图时,引用 - https://docs.djangoproject.com/en/dev/topics/class-based-views/ - 我将查看显示的示例代码:

from django.views.generic import TemplateView

class AboutView(TemplateView):
    template_name = "about.html"
Run Code Online (Sandbox Code Playgroud)

并尝试我的一个项目.更重要的是,我对幕后发生的事情感到好奇,所以我将深入研究源代码 -

# django/views/generic/__init__.py file

from django.views.generic.base import View, TemplateView, RedirectView
from django.views.generic.dates import (ArchiveIndexView, YearArchiveView, MonthArchiveView,
                                     WeekArchiveView, DayArchiveView, TodayArchiveView,
                                     DateDetailView)
from django.views.generic.detail import DetailView
from django.views.generic.edit import FormView, CreateView, UpdateView, DeleteView
from django.views.generic.list import ListView


class GenericViewError(Exception):
    """A problem in a generic view."""
    pass
Run Code Online (Sandbox Code Playgroud)

从这里开始,我将它向后追溯到django/views/generic/base.py文件,并找出确切的TemplateView类: -

class TemplateView(TemplateResponseMixin, View):
    """
    A view that renders a template.
    """
    def get_context_data(self, **kwargs):
        return {
            'params': kwargs
        }

    def get(self, request, *args, **kwargs):
        context = self.get_context_data(**kwargs)
        return self.render_to_response(context)
Run Code Online (Sandbox Code Playgroud)

这里显示了TemplateView类继承TemplateResponseMixinView类......我继续深入挖掘......依此类推......

问题是,这是一个非常低效和缓慢的过程(手动"跟随"类层次并沿途打开每个文件).

所以问题是 - 是否有一个简单的方法/ UI工具(或其他可视化解决方案)解析特定项目中的Python代码并可视化类层次结构,然后我可以通过"单击"我感兴趣的特定类来轻松检查关于?

请注意,我知道IPython shell,但这似乎不像用户视觉显示工具那样友好.

例如,F-Script在Objective-C/iOS/Mac编程的世界中,它不仅提供了一个shell(很像python或IPython shell),而且为开发人员提供了一种内省类层次结构的可视方式.

参考截图: -

在此输入图像描述

那么是否有一个类层次结构可视化工具(专门用于Python,但如果它是通用的并且可以用于不同的语言则更好)?在阅读开源代码时,您有什么方法可以有效地加快速度?

更新

根据下面的建议,我尝试了ctagsvim插件taglist,我可以使用:TlistOpen这样在vim中打开一个侧缓冲区: -

在此输入图像描述

这看起来很酷,因为:TlistOpen现在基本上显示了我当前打开的缓冲区中可用的所有类和函数.

我现在的问题是,当我尝试Ctrl]在光标打开时执行操作时TemplateView,出现以下错误: -

在此输入图像描述

我究竟做错了什么?是因为我的django源代码是在virtualenv?或者,我是否需要做一些具体的事情来制作ctags/ taglist"了解"django源代码?

Chr*_*gan 4

标签确实是一个很好的开始。(上面的东西太多了,所以我只为您提供一个额外的关键字来搜索:ctags。)

在 Vim 中,它最终(在基本情况下)Ctrl+]转到类/函数定义并Ctrl+T返回。