如何解决pyright / mypy:“ expr”没有属性“ id”
代码:
df1
pyright / mypy:
错误:“ expr”没有属性“ id”
来自typeshed:
library(data.table)
setDT(df1)
setDT(df2)
df1[,c('pay','ynm') := df2[df1,on = c('b' = 'y','d' = 'w'),.(c,e)]]
解决方法
考虑以下代码:
x = [100]
x[0] = 200
运行以下ast检查:
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))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。