Original title:
"Help me understand this weird Python idiom?
sys.stdout = codecs.getwriter('utf-8')(sys.stdout)
"
我一直在使用这个习惯用法在python2中用utf-8打印一堆内容作为标准输出。*:
sys.stdout = codecs.getwriter('utf-8')(sys.stdout)
但老实说,我不知道(sys.stdout)
在做什么。它让我想起了Javascript闭包之类的。但是我不知道如何在Python文档中查找这个习惯用法。在
你们中有谁能解释一下这里发生了什么事吗?谢谢!在
使用python flexibility的双括号调用包装器函数。
示例
^{pr2}$codecs.getwriter('utf-8')
返回具有StreamWriter
行为且其对象可以用流初始化的类。在因此,您正在做类似于:
^{pr2}$.getwriter
返回一个函数可调用对象;您只是在同一行中调用它。在示例:
演示:
^{pr2}$你也可以选择:
可视化:
相关问题 更多 >
编程相关推荐