【问题标题】:Trying to get started tracing Python features and behavior through the source code尝试通过源代码开始跟踪 Python 的特性和行为
【发布时间】:2012-10-24 16:16:06
【问题描述】:

我希望能够通过 Python 源代码进行调查和跟踪,以了解事情在后台是如何工作的,并解决对参考文档中未明确记录的功能的疑问。

我想了解一些有关如何处理此问题的初始信息,因为它非常庞大。我会读 C,所以我有这个习惯。除此之外,如果没有至少一点指导,这项任务似乎有点吓人。

例如,假设我想记录属性引用是如何在 Python 中实现的。当 Python 程序中存在属性引用表达式时,我将如何跟踪会发生什么?

也许对源代码的组织方式和每个部分的作用进行概述,以及一些“walk=thru”示例,例如“属性引用”案例。

我搜索了这方面的信息,但似乎没有太多。

【问题讨论】:

    标签: python python-3.x python-2.7 cpython


    【解决方案1】:

    也许一个好的 Python 调试器会有所帮助?我会尝试使用PyDev plugin for Eclipse。这至少可以帮助您跟踪在引用类的属性时调用了哪些特殊的 Python 方法(例如 __getattr__()__setattr__())。如果需要更深入,可以查看Python C API 甚至Python C Source Code

    【讨论】:

    • OP 正在询问有关 Python C 源代码的介绍!
    • 谢谢,我没想过为此使用调试器。我将看看这种可能性(尽管目前我没有使用 Eclipse。)至于 C API 和源代码,那绝对是理想的。只是寻找最不痛苦的方式来开始(有类似的东西吗?)
    • 看起来您可以使用 GDB with Python 在 C 源代码级别进行调试
    【解决方案2】:

    python 标准库中有一个跟踪模块。它有多种模式,可用于打印每行 python 代码,如下所示:

    python -m trace -t myscript.py
    

    http://docs.python.org/library/trace.html

    【讨论】:

    • 这很好,谢谢。我要马上看一下,看看我能用它收集什么信息。我的强迫症仍然想知道如何最终能够深入研究代码。不确定这是否是一项实际的努力,但我可以看到它只是为了好玩。
    • 试试这个。它当然很有用,但我不确定它是否具有所需的详细程度。例如,我没有收到 python 特殊方法调用(例如在实例化对象时等等。)也许你可以在跟踪中设置一个选项,尽管我没有马上看到。我去看看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 2010-11-30
    • 2011-12-05
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    相关资源
    最近更新 更多