Py3k 刚刚出来,有很多新东西!我很好奇,最让人兴奋的是什么?哪些功能会影响您每天编写代码的方式,或者您一直期待?
有一些我很感兴趣的事情:
文本和数据而不是unicode和8位
扩展的Iterable解包
功能注释
二进制文字
新的异常捕获语法
许多Python 2.6特性,例如:with语句
我希望异常链接能够抓住.由于下面介绍的反模式而丢失异常堆栈跟踪一直是我的烦恼:
try: doSomething( someObject) except: someCleanup() # Thanks for passing the error-causing object, # but the original stack trace is lost :-( raise MyError("Bad, bad object!", someObject)
我知道,我知道,在原始异常中添加一些上下文信息并保留原始堆栈跟踪是可能的,但它需要一个非常丑陋的黑客.现在你可以(而且应该!)只是:
raise MyError("Bad, bad object!", someObject) from original_exception
并轻松获得以上两者.所以,作为我对丢失堆栈痕迹的神圣使命的一部分:
伙计们,在重新加注异常时不要忘记from子句!谢谢.
坦率地说,没有一个.虽然我可能会发现自己使用了一些新的语法,但我主要使用Python来实现快速简单的脚本和正则表达式.
我认为新功能可以让很多人轻松搞好一些小东西,而且对于一些人来说很容易.但是,我对许多人最终会在生产力方面获得巨大收益的说法持怀疑态度.
简而言之,我认为这些变化会让整体事情变得更好,但不要指望任何奇迹.