社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

不太好升级的Python 3.7

Python程序员杂谈 • 7 年前 • 541 次点击  

Python3.7 新特性

  • 延迟加载的annotations,依赖from __future__ import annotations

  • datacalsses,可以看@伟明的文章,有详细介绍:http://www.dongwm.com/archives/attrs-%E5%92%8C-Python3-7-%E7%9A%84-dataclasses/(attrs 和 Python3.7 的 dataclasses),:

    @dataclass class Point: x: float y: float z: float = 0.0

  • breakpoint() - 省了每次都要import pdb;pdb.set_trace()

最升级影响比较大的是: * async和await是保留字了,意味着很多如果你项目里有定义这样的变量名就会报错。

其他的特性看网上介绍吧,有翻译。

刚才@伟明更新的一篇关于PEP 562的文章《Python 3.7 中的 PEP 562》可以看看。

历史的惯性和轮回

Python 3.7即将发布,但是要迁移上去并不容易,最大的一个问题在于async作为了保留字。在很多第三方库中多多少少会存在把模块或者变量定义为async的情况,即便是async已经出现了多年。

其他的库不知道,我只说我用到的库。在Guido发了关于3.7b4 release时我就进行了尝试,发现Celery和Kombu完全不能启动,直接抛出:SyntaxError: invalid syntax。

到现在为止最新版Kombu的库关于保留字的使用已经没有了,当时对于Celery来说,刚刚发布了4.2的版本,里面依然有保留字的使用。

所以,对于越庞大的物体,它的惯性越强。可能在很多年前它还是尝试新技术的先锋队,但当在新技术之上构建了很多新功能(业务)之后,就会变得不那么容易再来改变方向,也就会变成现在大家口头相传的:我靠,什么年头了,你们还在用这么老的版本,你看我们都直接上最新的。

殊不知,在很多年前,他们也曾自豪的说过同样的话。

推荐阅读:《Django源码解析- 视频版》前言-开篇词




今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/V9Cgfiwo7j
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/19423
 
541 次点击