python - 如何允许 exec 在 python 的嵌套方法中访问自由变量?
问题描述
exec
我必须在 python(2.6) 的嵌套方法中访问自由变量
def outerF():
la = 5
def innerF():
str1 = "print(la)"
exec (str1) in globals(),locals()
innerF()
outerF()
预期结果是 5 但我收到以下错误
NameError:名称'la'未定义
解决方案
请尝试对您的变量使用非本地语句。像这样:
def outerF():
la = 5
def innerF():
nonlocal la
str1 = "print(la)"
exec (str1) in globals(),locals()
innerF()
outerF()
更多信息可以在这里找到:Python 全局、局部和非局部变量
推荐阅读
- python - 如何从文件中调用函数
- java - 如何从擦除中投射通用类型
- python - 当工人数量增加并且 numpy 生成一个大数组时,Keras 使用的 CPU 更少
- php - 回调验证器没有触发?
- android - 由 React Native 提供支持的嵌入式 android WebView
- vim - Gruvbox 航空公司 Vim
- python - 在python中的LAMBDA函数中过滤数据框
- php - 如何在 CircleCI config.yml 中添加 php-amqp?
- python - 图像的位置没有按照我在 PYGAME 中想要的方式更新
- python - 构建失败(Ubuntu 16.04 使用 python-build 1.2.7)