python - exec() 为类方法范围变量分配一个新值
问题描述
source_code = '''
def fn():
print('source code executed')
return 100
exec_val = fn()
'''
class Executor:
@classmethod
def run(cls, code):
exec_val = 0
exec(code)
return exec_val
if __name__ == '__main__':
print(Executor.run(source_code))
>>> source code executed
>>> 0
上面代码的结果0
不是我所期望100
的。
我已经尝试在and中添加global exec_val
语句,但仍然无法正常工作。source_code
Executor.run
Python 3.6.8
解决方案
推荐阅读
- javascript - 对讲机javascript API如何跟踪线索?
- ios - 如何添加颜色模糊的图层边框?
- spring - Java 10 Spring Boot Infinispan org.jgroups.logging.Slf4jLogImpl 未找到
- ios - 我想在键盘显示时更改视图的框架
- python - 如何在 10 秒后强制一些用户输入
- typescript - 如何在服务人员内部使用 localstorage.setItem()?
- python - 通过正则表达式匹配将字符串拆分为单独的列表
- java - 无法在 Ubuntu 16.04(VMware Workstation14)中使用 Hadoop3.0.0 beta1 运行`sudo ./sbin/start-dfs.sh`
- javascript - React Highcharts 从本地状态更改所选列的边框颜色
- android - DeviceAdminReceiver:未调用 onChoosePrivateKeyAlias