Python中的单下划线'_'漫谈

780阅读 0评论2014-07-22 B_C_1024
分类:Python/Ruby

在交互式界面下,与Perl类似,当上一次执行的命令返回值没有显式的用变量存储,且返回值不为None的时候,这个返回值会被交互式环境动态的存储在变量_当中。例如:
>>> a=1
>>> a
1
>>> _
1
>>> a=None
>>> a
>>> _
1

在脚本当中,有一种技术叫“假读”,用在当函数返回多个值(一个tuple),而你只关心其中一部分的时候,往往用 _ 来将不关心的那部分接住,以后不再使用。不过在使用“假读”技术的时候,最好不要用 _ ,而另外起一个显眼一点的名字,原因见后面。“假读”例子:
_ , ext = os.path.splitext('/tmp/something.txt')
不过最好另起个名字,比如:
dummy, ext = os.path.splitext('/tmp/something.txt')
或者直接指定也可以:
ext = os.path.splitext('/tmp/something.txt')[1]

还有一个重要的函数是 _( ),用来国际化的处理字符串,将给出其参数的国际化版本,比如在中文的local下
_("Hello") 会返回是 "你好",所以Widget.set_text(_("Hello")) 相当于 Widget.set_text("你好")。正因为如此,如果你在使用“假读”技术的时候用了 _ ,那么这个国际化的函数将被覆盖掉,在一个大工程当中,这就是一场灾难。
上一篇:Python 模块学习 logging(2)
下一篇:xm create命令解析(一)