This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2016年05月25日 06:42 by leewz, last changed 2022年04月11日 14:58 by admin. This issue is now closed.
| Messages (4) | |||
|---|---|---|---|
| msg266311 - (view) | Author: Franklin? Lee (leewz) | Date: 2016年05月25日 06:42 | |
From `compile`'s doc: "Compile the source into a code or AST object." The docs don't say how to compile into an AST object with `compile`, though. As it says later: "If you want to parse Python code into its AST representation, see ast.parse()." I checked 3.4-3.2, 3.0, 2.7, and 2.6. Versions before 3.4, and version 2.6, are missing the `ast.parse` line, but still have the first line. |
|||
| msg266321 - (view) | Author: Eryk Sun (eryksun) * (Python triager) | Date: 2016年05月25日 08:13 | |
What you're looking for is in the 2nd paragraph of the ast docs:
An abstract syntax tree can be generated by passing
ast.PyCF_ONLY_AST as a flag to the compile() built-in
function, or using the parse() helper provided in this
module. The result will be a tree of objects whose
classes all inherit from ast.AST. An abstract syntax
tree can be compiled into a Python code object using
the built-in compile() function.
For example:
>>> mod = compile('42', '', 'exec', ast.PyCF_ONLY_AST)
>>> mod
<_ast.Module object at 0x7f0e45b15be0
>>> ast.dump(mod)
'Module(body=[Expr(value=Num(n=42))])'
In the discussion of `flags`, I think the compile docs should explicitly list ast.PyCF_ONLY_AST and the CO_FUTURE_* flags in a table.
|
|||
| msg266324 - (view) | Author: Franklin? Lee (leewz) | Date: 2016年05月25日 09:11 | |
> What you're looking for is in the 2nd paragraph of the ast docs: Oh. I considered that, but then compile's docs say: The optional arguments flags and dont_inherit control which future statements (see PEP 236) affect the compilation of source. |
|||
| msg381017 - (view) | Author: Batuhan Taskaya (BTaskaya) * (Python committer) | Date: 2020年11月15日 15:59 | |
We've added a reference to the compiler flags into the compile(), see issue 40484 for details. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:31 | admin | set | github: 71306 |
| 2020年11月15日 15:59:37 | BTaskaya | set | status: open -> closed versions: + Python 3.10, - Python 2.7, Python 3.5, Python 3.6, Python 3.7, Python 3.8 messages: + msg381017 resolution: duplicate stage: resolved |
| 2019年12月15日 13:02:01 | cheryl.sabella | link | issue34000 superseder |
| 2019年12月01日 19:25:30 | BTaskaya | set | nosy:
+ BTaskaya versions: + Python 3.7, Python 3.8, Python 3.9, - Python 3.2, Python 3.3, Python 3.4 |
| 2016年05月25日 09:11:46 | leewz | set | messages: + msg266324 |
| 2016年05月25日 08:13:01 | eryksun | set | nosy:
+ eryksun messages: + msg266321 |
| 2016年05月25日 06:42:47 | leewz | create | |