写点什么

开发人员眼中的 Python 3

  • 2011 年 8 月 21 日
  • 本文字数:869 字

    阅读完需:约 3 分钟

Python 3 正式版已经发布两年半了,由于新版本没有向后兼容 2.x 版,大家对它的反应也不太一样。为了搞清楚开发人员是如何看待 Python 3 的,我们采访了 Virgil Dupras。

InfoQ:请先介绍一下自己,你在平时的工作中哪些地方用到了 Python?

Virgil Dupras:我用 PyObjC 和 PyQT 开发了一些开源的桌面应用程序,发布在 http://www.hardcoded.net/ 上。我之前是做 Delphi 的,但从 2005 年开始就一直使用 Python 了。

InfoQ:一年前你就切换到了 Python 3 上,主要原因是什么?

Virgil Dupras: 我非常喜欢 Python,我想让它变得更好。我希望能够更多的参与到核心语言的开发中,但后来发现我还是不够聪明。当然,我还可以提交补丁(我确实提交了一些),可事实上我几乎就没遇到过 Python 有什么缺陷,因此也没什么补丁好提交的。

所以,我觉得我能够帮助 Python 的最好方法就是做一个 Python 3 的早期使用者,这也确实达到我了目的。我没遇到过 Python 本身的问题,到是很多库有缺陷。我还为 py3k 做了很多库移植的工作。

InfoQ:当你将代码升级到 Python 3 的时候,有没有因为兼容性而产生严重的问题?

Virgil Dupras: 升级到 Python 3 时,你唯一可能遇到的大问题就是字符串和字节之间关系的问题。不过不用担心,只要在升级之前导入所有相关的 __future__ 模块就行了。除法可能也是一个问题,不过你不是已经用“from __future__ import division”解决了么?

字符串和字节的问题非常很棘手,在移植代码之前你得好好想想怎么使用字符串类型。比如,正则表达式只能用于匹配字符串,无法匹配字节。所以,如果之前你把字符串当做字节来用正则表达式解析的话,你就会遇到问题。

除了这种情况,字符串与字节的问题就很好解决了:注意字面值,检查所有的“open”调用,确认到底应该用二进制模式还是文本模式。

InfoQ:有没有在 Python 2 中你喜欢的,但是 Python 3 却没有的特性?

Virgil Dupras: 没有,这还是同一种语言,只是更好了。

更多关于跨平台界面开发的信息,请参考 Virgil 的文章 Cross-Toolkit Software

查看英文原文: Reports from the Field: Python 3 with Hardcoded Software

2011 年 8 月 21 日 22:067783
用户头像

发布了 63 篇内容, 共 21.3 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

TcaplusDB君 · 行业新闻汇编(11月15号)

TcaplusDB

TcaplusDB君 · 行业新闻汇编(11月17号)

TcaplusDB

TcaplusDB君 · 行业新闻汇编(11月19号)

TcaplusDB

使用 Omnibus 安装极狐GitLab

极狐GitLab

极狐GitLab 安装使用

Linux学习有用吗?《Linux一学就会》

侠盗安全

Linux linux运维 云计算架构师 linux电子书

TcaplusDB君 · 行业新闻汇编(11月10号)

TcaplusDB

用 NodeJS 开发一版在线流程图网站

狂奔滴小马

JavaScript 大前端 Node

Vue都使用那么久了,还不了解它的生命周期吗

CRMEB

人脸检测实战:使用opencv加载深度学习模型实现人脸检测

AI浩

管理纪要

KoLee

首发!OceanBase社区版入门教程开课啦!

OceanBase 数据库

数据库 开源 新闻 课程 oceanbase

Python代码阅读(第62篇):列表是否包含相同元素判断

Felix

Python 编程 列表 阅读代码 Python初学者

使用 NextJS 和 TailwindCSS 重构我的个人博客

狂奔滴小马

大前端 Blog nextjs

我们如何实现“业务 100% 云原生化,让阿里中间件全面升级到公共云架构”?

阿里巴巴中间件

阿里云 云原生 中间件 三位一体

java语言前景怎么样,到底需不需要参加培训

@零度

Java JAVA开发

一起来写 VS Code 插件:VS Code 版 CNode 已上线

狂奔滴小马

JavaScript vscode 大前端

Android C++系列:Linux进程间通信(一)

轻口味

c++ android 11月日更

StarRocks Hacker Meetup 小记 Part 2|实时更新场

StarRocks

大数据 Meetup StarRocks

零基础学习前端开发技术的方法分享

@零度

大前端

正确学习大数据开发技术的方法有哪些

@零度

大数据

一文讲透如何用明道云构建物料需求计划系统

明道云

netty系列之:在http2中使用framecodec

程序那些事

Java java 并发 程序那些事 11月日更

今日谈:BoltDB数据库,一款纯Go实现的KV数据库

恒生LIGHT云社区

数据库 Go 语言 BoltDB

TcaplusDB君 · 行业新闻汇编(11月08号)

TcaplusDB

TcaplusDB君 · 行业新闻汇编(11月22号)

TcaplusDB

入驻快讯|欢迎ShowMeBug正式入驻 InfoQ 写作平台!

InfoQ写作社区官方

图论算法:稳定婚姻问题,如何找到最适合自己的另一半

博文视点Broadview

一起来写 VS Code 插件:为你的团队提供常用代码片段

狂奔滴小马

vscode 大前端

一起来写 VS Code 插件:实现一个翻译插件

狂奔滴小马

JavaScript vscode 大前端 vs

百亿级存储+毫秒级写入!TDengine如何轻松玩转“潮鞋”APP?

TDengine

tdengine 时序数据库

智能运维中的指标预测

云智慧AIOps社区

算法 智能运维 预测 指标

开发人员眼中的Python 3_Python_Jonathan Allen_InfoQ精选文章