专栏首页python3惊艳!Python3 的这几个特性

惊艳!Python3 的这几个特性

距离官方放弃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 ,开始原生支持异步操作,这使得在单线程情况下,也能充分利用系统资源,提高程序性能。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python通过生成cookie文件,并

    今天有个需求需要通过cookie访问内部cmdb,获取机器等信息。上网搜罗了一下用法。记录一下

    py3study
  • linux下安装python3

      wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0a1.tar.xz

    py3study
  • 经验拾忆(纯手工)=> Scrapyd

    我之前做的项目:一直用的 Linux的Screen会话工具+ Scrapy的JOBDIR来控制爬虫开关。 但是有后来想到用 Web 来控制爬虫的开关。所以我想...

    py3study
  • 如何跨服务器复制表中数据

    不同服务器数据库之间的数据操作 不同数据库之间复制表的数据的方法: 当表目标表存在时: insert into 目的数据库..表 select * from ...

    李海彬
  • 如何跨服务器复制表中数据

    不同服务器数据库之间的数据操作 不同数据库之间复制表的数据的方法: 当表目标表存在时: insert into 目的数据库..表 select * from ...

    李海彬
  • 单点登录与权限管理本质:cookie安全问题

    继续介绍「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,前一篇文章介绍了单点登录概念,以CAS协议的基本流程为例讲解了系统间的交互过程,过程中,c...

    情情说
  • python爬取连续一字板股票及当时日期数据【原创分享】

    逆向小白
  • 微信这家智慧时尚店开幕 AI导购“看脸”推荐服装

    今日,微信支付、腾讯社交广告与绫致时装集团达成合作,全国首次推出人脸智慧时尚店。微信支付智慧零售行业解决方案通过人脸识别AI技术及精准推荐算法,赋能时尚行业,将...

    企鹅号小编
  • SQL学习之Insert的特殊用法(插入检索出的数据,表之间的数据复制)

    1、插入检索出的数据 select * from dbo.Customers_1 ? 现在有个需求,需要将这张Customers_1表的数据合并到Custome...

    郑小超.
  • 微信跨界开了家人脸智慧时尚店 “刷脸”就能买买买

    微信跨界领域越来越广泛了,这次推出了人脸智慧时尚店,想要帮助顾客实现“刷脸”购物。 ? 12月26日,微信支付、腾讯社交广告与绫致时装集团达成合作,在全国首次推...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券