设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

Slashdot对Python之父的采访

2013-9-3 11:40| 发布者: joejoe0332| 查看: 2999| 评论: 0|原作者: 伯乐在线|来自: 伯乐在线

摘要:   Python之父Guido van Rossum在2013年1月正式从Google离职后并正式加入 Dropbox。2013年8月19日,Slashdot 网站发起了一个对 Guido 的访谈主题帖,网友在评论中提问。8月25日,Slashdot 在另外一个帖子中汇总了“ ...

多行lambda表达式

由 NeverWorker1 提问:“对于Python,有一个最常见的抱怨就是它的对于lambda表达式的限制,也就是说一行里不能赋值。很明显,Python对空格的处理是导致这样的主要原因。我已经花了一些事件思考实现多行lambda表达式的可能性,然后我能想出的最好方法是硬塞进一些不用的符号,比如C语言风格的大括号,这样最多有点乱。有没有更好的方法,你觉得这个功能会被添加上吗?”

Guido:真的?我基本上从来没听到过那些抱怨,除了在Slashdot采访里提问题的人。

  这确实是更好的方法,这里使用def关键字在本地作用域定义一个正规的函数。这个被定义的函数对象变成了一个本地变量,而这根使用lambda是相同的语义,除非这里用到了一个本地变量,并且这里没有任何语法的限制。例如,以下两种写法的语言是相同的:

1
2
3
4
def make_adder(n):
__def adder(x):
____return x + n
__return adder

然后这是使用lambda的表达式:

1
2
def make_adder(n):
__return lambda x: x + n

  Andrew Koenig 有一次向我指出了在一种场景下,lambda是非常适合的,那就是你有你个很长的list或者dict包括很多lambda表达式,因此如果你想不用lambda实现的话,那么定义一大堆函数,给它们命名,然后用list或dict里的名称来引用它们就会让你受不了。但是,在那种情况下,lambda表达式是足够简单的,如果你有一些异常,在list或dict之前使用def才是一种好的妥协。

 

PyPy

由Btrot69提问:“你觉得PyPy代表未来的发展方向吗?你是否对此表示怀疑?如果是,为什么?”

Guido:我对此仍然持怀疑态度,有两个原因:(1)它们还不支持Python3。(2)还有很多扩展模块不能很好的支持。但是我希望它们能修复那些问题。作为PyPy项目的竞争者,Jython和IronPython会让CPython项目保持其发展势头。

 

浏览器运行Python?

多年以来,曾经尝试几次创建一个沙箱版本的Python,使之能够运行在浏览器上。主要是因为Javascript的问题。而现在针对Javascript做的工作,我们有了一个很好的替代品CoffeeScript——那现在是不是已经是时候来实现让Python运行在浏览器里的功能了?

Guido:我在1995年就放弃了这件事。并且请不要把Python编译成Javascript。它们的语义非常不同,结果是你用Javascript写了一个Python运行时,它会让运行变得太慢。

 

Python3

由 MetalliQaZ 提问:“你对目前向Python 3的迁移的迁移感觉怎么样?从一个用户的角度来看,一些流行的库的转变还差得很远,而这阻碍着这种过渡。在我的专业所及的地方,基本上我用的所有系统都没有安装3.x解释器。事实上,2.7也很少,我想听听你的看法。”

Guido:很好奇你在哪工作。我同意向Python3的迁移会持续很长时间,但是如果你的系统还没用上2.7版本的话,那就真是有点古老了!在我离开Google的时候,所有向Python2.7过渡的工作全部完成了(在前几年已经成功的从2.4迁移到2.6),在Dropbox这里,客户端和服务器端都是用的2.7。这两个公司都在考虑Python3的问题了。

  再来说向Python3的迁移,我实际上是相当乐观的。很多流行的库都开始着手做这件事。它确实会持续很长时间,但也有很多进展,过几年之后,我希望所有的代码都能迁移到Python3上来。完全根除Python2的使用可能会花更多的时间,但是呢,Windows XP不也是没完全死掉吗。


酷毙

雷人

鲜花
1

鸡蛋

漂亮

刚表态过的朋友 (1 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部