代码:
def extract_assignment(assignment: ast.Assign) -> Dict[str, LINES_RANGE]:
targets = ', '.join(t.id for t in assignment.targets)侏儒/泥巴:
错误:"expr“没有属性"id”。
来自排版
class Assign(stmt):
targets: typing.List[expr]
value: expr发布于 2020-09-21 16:59:47
考虑以下守则:
x = [100]
x[0] = 200运行以下最后检查:
import ast
code = """
x = [100]
x[0] = 200
"""
root = ast.parse(code)
for node in ast.walk(root):
if isinstance(node, ast.Assign):
print(type(node.targets[0]))印刷如下:
<class '_ast.Name'>
<class '_ast.Subscript'>因此,在这种情况下,ast.expr可以是ast.Name,也可以是_ast.Subscript。只有ast.Name有一个id属性。
要只使用ast.Name的代码,请使用以下代码:
targets = ', '.join(t.id for t in assignment.targets if isinstance(t, ast.Name))https://stackoverflow.com/questions/63995481
复制相似问题