设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

Python 3.8 新特性全面解读(5)

发布时间:2019-04-02 13:15 所属栏目:21 来源:佚名
导读:例: 1staticvoid 2foo_dealloc(foo_struct*instance){ 3PyObject*type=Py_TYPE(instance); 4PyObject_GC_Del(instance); 5#ifPY_VERSION_HEX=0x03080000 6//ThiswasnotneededbeforePython3.8(Pythonissue35810) 7P

例:

  1. 1 static void 
  2. 2foo_dealloc(foo_struct *instance) { 
  3. 3    PyObject *type = Py_TYPE(instance); 
  4. 4    PyObject_GC_Del(instance); 
  5. 5#if PY_VERSION_HEX >= 0x03080000 
  6. 6    // This was not needed before Python 3.8 (Python issue 35810) 
  7. 7    Py_DECREF(type); 
  8. 8#endif 
  9. 9} 
CPython字节码更改

通过移动将块堆栈展开到编译器中的逻辑,简化了解释器循环。编译器现在发出显式指令,用于调整值堆栈并调用清理代码breakcontinue和 return

删除操作码BREAK_LOOP,CONTINUE_LOOP, SETUP_LOOP和SETUP_EXCEPT。增加了新的操作码ROT_FOUR,BEGIN_FINALLY,CALL_FINALLY和 POP_FINALLY。改变了END_FINALLYWITH_CLEANUP_START。 添加了新的操作码,END_ASYNC_FOR`用于处理在等待循环中的下一个项目时引发的异常。

【编辑推荐】

  1. 微软越来越接近开发一个实用的DNA数据存储系统
  2. 涵盖15个领域,GitHub 优质开源 Python 项目大合集
  3. 前端开发值得拥有的 VSCode 插件
  4. 阿里工程师开发了一款免费工具,提升Kubernetes应用开发效率
  5. Vim哭了,浏览器就能远程VS Code开发,还支持Docker快速部署运行
【责任编辑:张燕妮 TEL:(010)68476606】
点赞 0

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读