python3 exec locals()

起因

因为需要一边调试写python脚本, 一边在interpeter里面测试,但import只能导入一次,所以想要用execfile,但是python3没有这个函数,官方的推荐是exec(open(path).read()),但是这样要写好长.于是,想要自己写一个

经过

自己写出的代码是这样的.

def execfile(path):'''execute file in local scope and then add local new added variables to globals.'''ori=locals().copy()with open(path) as f:exec(f.read())del floc=locals()del loc['ori']for i in loc:if not i in ori:globals()[i]=loc[i]

由于需要将exec加入到局部域中的变量,加入到全局域中,所以有了这样的代码,但是当使用这个函数加载某脚本的时候,发生了错误.
加载的脚本抽象如下:

def a():return 0def b():return a
b()

然后就报错了.然后搜了一下,果然在stackoverflow上有说.
就是说execlocals()是不"打算"修改并且修改的行为是和globals()不同的.可以认为locals()是没有被修改的,但是其中有一些相当微妙的东西.

比如,如下代码

def foo():exec('''
def a():pass''')def b():passprint(locals())foo()

的输出结果

{'a': <function a at 0x000001790A5392F0>, 'b': <function foo.<locals>.b at 0x000001790A539268>}

至于如何微妙我就不懂了.

结果

结果就是我知道了exec的两个参数,所以,我最后的execfile函数改成

def execfile(path):with open(path) as f:exec(f.read(),globals())

就行了.

python3 exec locals()相关推荐

  1. python exec函数_Python3 exec 函数

    Python3 exec 函数 描述 exec 执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码. 语法 以下是 exec 的语法: ex ...

  2. python3中exec_Python3

    Python3 exec 函数 描述 exec 执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码. 语法 以下是 exec 的语法:exe ...

  3. [转载] Python的exec

    参考链接: Python exec() 目录 exec()简单使用 动态执行简单的字符串代码 动态执行较复杂的代码 执行文件中的Python代码 在exec中传参 ​ 使用中遇到的问题 参考 exec ...

  4. 【错误记录】Mac 中 IntelliJ IDEA 运行 Python 程序报错 ( No module named ‘numpy‘ )

    文章目录 一.报错信息 二.解决方案 一.报错信息 编译时 , 报错如下信息 : No module named 'numpy' 二.解决方案 pip install numpy Try to run ...

  5. 我的docker随笔26:制作arm平台的python-pandas镜像

    需求: 构建 arm (linux_armv7l) 平台上用于测试机器训练的 python 镜像,带 numpy. pandas.sklearn,等. 本文构建所用操作系统为 ubuntu 16.04 ...

  6. 【错误记录】Mac 中 Python 报错 ( ERROR: Could not build wheels for numpy which use PEP 517 | 问题未解决 | 问题记录 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 首先 , 更新 pip ; 执行如下命令 : /usr/local/bin/python3 -m pip install --upgrade pip ...

  7. ERROR: Could not build wheels for mujoco-py which use PEP 517 and cannot be installed directly

    今天安装mujoco-py的时候,遇见了下面的错误: ➜ v2 pip install mujoco-py Looking in indexes: http://pip.baidu.com/root/ ...

  8. Package | 解决 Could not build wheels for opencv-python which use PEP 517 and cannot be installed

    背景 在nvidia ngc平台下载docker image,根据实验要求在环境里安装opencv.因为当前实验tensorflow要求版本较低,我下载了比较久远的版本镜像.如果大家是自己复现代码,还 ...

  9. python安装成功的图标_ubuntu下:安装anaconda、环境配置、软件图标的创建、成功启动anaconda图形界面...

    Ubuntu安装anaconda常见的四大问题: 目录 1.介绍 2.安装anaconda 3.环境配置 4.软件图标的创建 5.成功启动anaconda图形界面 1.介绍 先介绍一下anaconda ...

最新文章

  1. python使用正则化检查字符串的起始和结束字符相同
  2. android:versionCode 跟 android:versionName
  3. 安装fastdfs出现/usr/local/lib/libfastcommon.so: undefined reference to `fcntl64@GLIBC_2.28‘
  4. Python 写各大聊天系统的屏蔽脏话功能原理
  5. centos7 开启防火墙端口 firewalld
  6. haproxy基于cookie实现会话绑定
  7. python工资高还是java-Python和Java哪个工资高
  8. 亡命逃窜---三维搜索
  9. day9--Matplotlib--折线图
  10. c# socket 服务器端如何判断客户端掉线
  11. 打印机扫描显示计算机故障或繁忙,打印机无法扫描_如何用打印机进行扫描,如何用打印机扫描文件...
  12. linux查看本机IP掩码,linux下 取得本机ip、掩码、网关
  13. 3、男人长得丑,除了知识还需要些什么?
  14. Excel/WPS做数据透视表,即对变量做交叉汇总(列联表)
  15. hive Cannot truncate non-managed table
  16. 微信多订单合并付款_拼多多只能微信支付吗?拼多多合并支付有什么优势?
  17. 万字长文:用Python轻轻松松操作Excel、Word、CSV!
  18. 乌镇·Conflux CTO伍鸣:让公链的“不可能三角”成为可能
  19. LaTeX第一课:MiKTeX+Texmaker安装
  20. WIndows 中文字体类型对应的文件名称

热门文章

  1. 逆向进阶,利用 AST 技术还原 JavaScript 混淆代码
  2. Java基础-22总结登录注册IO版,数据操作流,内存操作流,打印流,标准输入输出流,转换流,随机访问流,合并流,序列化流,Properties
  3. 江苏将举办大院大所合作专题推介会
  4. 案例01-tlias智能学习辅助系统04-登录认证+全局异常处理
  5. python字符串‘’ “ ”使用以及使用转义字符
  6. 图挖掘算法-gSpan
  7. 苹果应用上传TestFlight安装测试教程
  8. Android属性动画深入分析:让你成为动画牛人
  9. opencc-python使用
  10. 性能测试指标、性能测试术语