Py2,Py3的差异

chapter 1

Python3.x与Python2.7相比的主要变化

  • print()是一个函数,必须加括号.
  • 捕获异常由except ext, var变为expect exc as vat.
  • 弃用<>,改用!=.
  • from module import *,只能用于模块,不能用在函数中.
  • from .[module] import name,是相对导入的唯一正确语法.
  • sorted()函数与列表的sort方法不再接受cmp参数,应用key代替.
  • 整数除法(1/2)返回浮点数,取整用//,浮点数也可以使用/,5.0/2.0=2.0.

语义化版本号

版本号格式:主版本号.次版本号.修订号

  • 主版本号(MAJOR):不兼容的API修改
  • 次版本号(MINOR):向后兼容的功能性新增
  • 修订号(PATCH):向后兼容的问题修正

__feature__模块:

  将python中的新版本反向迁移到旧版本中:from __feature__ import <name>

PyPy

  PyPy的目标是将python重写为Python.在PyPy中,Python解释器本身就是用Python编写的.在Python的CPython实现中,代码的底层实现都是由C语言编写的.但是在PyPy实现中,C代码层用Python完全重写.PyPy通常不用于生产环境.但是随着JIT的启用,PyPy在很多基准测试中比CPython快好几倍.
JIT

  JIT编译器,英文写作Just-In-Time Compiler,中文意思是即时编译器。JIT是一种提高程序运行效率的方法。通常,程序有两种运行方式:静态编译与动态解释。静态编译的程序在执行前全部被翻译为机器码,而动态解释执行的则是一句一句边运行边翻译。

PyPy与CPython的主要区别
  • 使用垃圾回收,不是引用计数
  • 集成跟踪JIT编译器,显著提高性能
  • 借鉴stackless Python在应用层无栈的特性
Stackless Python

  Stackless Python自称Python的增强版,它不依赖于C语言的调用栈,它在CPython的基础上进行了修改,使用有解释器管理的微线程替代依赖系统内核上下文切换和任务调度的普通线程,即轻量化又节约资源.

系统级环境隔离

  • 使用Vagrant的全机虚拟化来创建并管理多个开发环境
  • 容器化,是一种轻量级的虚拟化方法,内核与操作系统允许运行多个隔离的用户空间实例.
  • 容器化与虚拟化的主要区别:
    • Vagrant不能将隔离环境原样打包并部署到生产环境
    • Docker可以将整个环境打包,发送到生产环境中并部署
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值