社区所有版块导航
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

惊艳!Python3 的这几个特性

Python网络爬虫与数据挖掘 • 7 年前 • 279 次点击  

距离官方放弃Python2的时间越来越近,很多项目也逐渐的开始放弃对Python2的支持,比如Django,IPython这些框架就走在了最前列,Python2完成了它的使命,在人工智能的新时代,Python2带来的问题不断地困扰开发者,比如字符编码问题、性能问题、代码维护问题等等。

而 Python3 才是未来真正适合移动互联网、人工智能的一门语言。发现很多很多小伙伴依然停留在Python2的脚步,一部分原因来自于老旧系统带来的迁移成本,还有另一部分原因则是缺乏相关的资料。专门介绍Python3的文章还比较少,所以小编想根据自己的工作经验盘点Python3给我带来的好处。

1. 明确区分字符和字节类型

没遇到过Python编码问题都不能称之为真正的Python程序员,但凡是在中文环境下使用Python或多或少都遇到过字符编码的问题,最常见的错误就是UnicodeEncodeError,UnicodeDecodeError 这样的错误。出现这种错误的根本原因在于Python2积攒下来的历史包袱,默认使用ASCII作为编码格式,字符串和字节类型界限模糊,字符串又分为str和unicode类型,有时一个字符串既是str类型,又可以是byte类型,混乱至极。所以在Python3彻底解决的这种情况,首先Python3使用utf-8作为默认编码,这样就兼容了所有字符,无论是中文、日文、韩文还是火星文都可以表示了,此外,str和byte两种类型做了明确的区分,因此,使用Python3可解决99%的编码错误问题。

2. 取消老式类

Python2 为了兼容之前的版本,Python中的类还分为新式类和旧式类,旧式类由于早期的设计缺陷导致功能不完善,于是推出了新式类,这样一来,在python2中就一直存在新旧两种形式的类,而在Python3就彻底把旧式类抛弃掉了。这也很多程度上减少了开发者每次创建一个对象还是显式的指定object作为父类的情景。

3. 类型声明

我们都知道Python是一门动态语言,动态语言的一大特点就是定义变量的时候不需要指定数据类型,变量本省是没有类型整个说法的,真正的类型是由对象才有,正因为如此,这个特性给开发者带来灵活和便利性,与此同时,有利也有弊,任何变量在运行期你是无法确定变量的类型的,程序不得不在运行时才能确定类型,这样就会造成一个问题,如果你是API的调用者,当API的提供方没有提供详细的文档说明或者代码注释的时候,你根本就无法利用他们给你提供的服务,而且,项目规模变大之后,没有类型声明的代码对维护也是一大挑战,因为,Python3考虑到这种情况,新增了类型声明,在方法定义或者数据的返回值,都可以指定一个数据类型,明确要求调用者必须使用指定的类型才能调用该方法。

4. 异步

Python虽然提高的开发的效率,但是带来的代价就是程序性能上的损耗,因为它是一种解释型语言,速度上自然比不上静态语言,与此同时,Python天生的GIL语言,并不能充分利用多核CPU,使得程序可以并行执行。所以,多线程面对计算密集型场景成了鸡肋。为了解决这一问题,Python引入了 ascync ,开始原生支持异步操作,这使得在但线程情况下,也能充分利用系统资源,提高程序性能。

学习Python和网络爬虫关注公众号:datanami

近期文章:

  1. 全球最大的同性交友社区成立10周年,那些年我们在 GitHub 追过的 Python 库

  2. 12行Python暴力爬《黑豹》豆瓣短评

  3. Scrapy: 10分钟写一个爬虫抓取美女图


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