如何解决在exec内部使用非本地
为什么要执行以下代码:
num degreesToRads(num deg) {
return (deg * pi) / 180.0;
}
canvas.drawArc(Offset(0,0) & Size(500,500),degreesToRads(90),2.09439666667,true,paint1);
canvas.drawArc(Offset(0,degreesToRads(210),degreesToRads(330),paint1);
)
给出此错误:
exec("""
a = 3
def b():
nonlocal a
a = a + 1
b() #error occurs even without this call
print(a)
"""
)
为了满足文本/代码比率,这是更多的文本。
解决方法
nonlocal
语句在封闭的函数名称空间中查找您命名的变量(如果在任何此类名称空间中没有此类变量,则会引发错误)。如果没有封闭功能,则不需要nonlocal
。如果您想在顶层使用变量,则可以改用global
语句。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。