Python 2 compiler.ast替换Python 3、函数Discard和Const

Python 2 compiler.ast替换Python 3、函数Discard和Const,python,python-3.x,abstract-syntax-tree,Python,Python 3.x,Abstract Syntax Tree,我正在尝试将一个旧的库转换为Python 3,该库将称为snakefood的依赖项映射到Python 3。我有两个部分,我不知道该替换什么,因为我找不到关于这两个函数的功能的文档-从compiler.ast import Discard,Const,我似乎在ast库的Python 3中找不到等效的。以下是来自Python 2的函数调用,请参见isinstance调用中使用的两个函数: 抱歉,我不理解这些内容,我刚刚了解到AST调用试图使用此库。非常感谢。我花了一段时间才弄明白它现在的功能是什么,

我正在尝试将一个旧的库转换为Python 3,该库将称为snakefood的依赖项映射到Python 3。我有两个部分,我不知道该替换什么,因为我找不到关于这两个函数的功能的文档-从compiler.ast import Discard,Const,我似乎在ast库的Python 3中找不到等效的。以下是来自Python 2的函数调用,请参见isinstance调用中使用的两个函数:

抱歉,我不理解这些内容,我刚刚了解到AST调用试图使用此库。非常感谢。

我花了一段时间才弄明白它现在的功能是什么,尽管它比以前包含了更多的内容

我从compiler/codegen.py的源代码中得到了以下提示:

    def visitDiscard(self, node):
        # XXX Discard means it's an expression.  Perhaps this is a bad
        # name.

Const已经被几个不同的类型所取代,这些类型表示不同的常量,特别是Num、Str、JoinedStr和其他一些常量。所有ast类型的文档。

因此,仅包含常量子级的丢弃节点类似于docstring。@jasonharper我也看到它的数字:>>>编译器。解析'2'模块名,Stmt[DiscardConst2]
    def visitDiscard(self, node):
        # XXX Discard means it's an expression.  Perhaps this is a bad
        # name.