gpt4 book ai didi

Python AST 代码示例取自 Serious Python : Black-Belt Advice on Deployment, 可扩展性、测试等一书

转载 作者:行者123 更新时间:2023-12-04 12:15:32 36 4
gpt4 key购买 nike

我正在阅读 Julien Danjou 的《Serious Python: Black-Belt Advice on Deployment, Scalability, Testing, and More》一书,我在阅读第 8 章的代码时遇到了问题。
这是代码:

import ast
hello_world = ast.Str(s = 'hello world!', lineno=1, col_offset=1)
print_name = ast.Name(id='print', ctx=ast.Load(), lineno=1, col_offset=1)
print_call = ast.Call(func=print_name, ctx=ast.Load(), args=[hello_world], keywords=[], lineno=1, col_offset=1)
module = ast.Module(body=[ast.Expr(print_call, lineno=1, col_offset=1)], lineno=1, col_offset=1)
code = compile(module, '', 'exec')
eval(code)
它给了我以下错误:
code = compile(module, '', 'exec')
TypeError: required field "type_ignores" missing from Module
我仔细检查我是否输入错误,但我没有发现任何错误。
有人可以给我一个线索吗?
非常感谢!

最佳答案

解释了此错误以及如何修复它 in this issue : python ast模块有改动,大概是书出来之后,ast.Module现在希望您传递一个名为 type_ignores 的列表.出于您的目的,您可以只传递一个空列表:

module = ast.Module(
body=[ast.Expr(print_call, lineno=1, col_offset=1)],
lineno=1,
col_offset=1,
type_ignores=[],
)
full working code example here .

关于Python AST 代码示例取自 Serious Python : Black-Belt Advice on Deployment, 可扩展性、测试等一书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68249580/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com