对于虚拟变量__(两个下划线)是否优于_(单个下划线)?

克林特瓦尔

我在Python 2.7中有一个任意示例,其中需要一个虚拟变量。我发现许多资料来源建议使用单个,_例如以下示例:

 directory = {key: [0 for _ in range(catnum)] for key in register}

我找到了此链接:http : //docs.python-guide.org/en/latest/writing/style/#create-an-ignored-variable

这是上述网址的引用段落:

注意:许多Python样式指南建议对抛弃型变量使用单个下划线_,而不是在此处建议使用双下划线__。问题是_通常用作gettext()函数的别名,并且还用于交互式提示符下以保存上一个操作的值。相反,使用双下划线既清楚又几乎方便,并且消除了意外干扰其他两个用例之一的风险。

我刚刚开始用Python进行编码,并且想知道是否__接受了约定?什么是_会引起问题的代码示例

directory = {key: [0 for __ in range(catnum)] for key in blasts}
损伤

好吧,引用的段落准确地告诉您在哪里使用_会出现问题:在交互式解释器中以及在任何将其用作别名的代码中gettext.gettext,这在希望将其文本本地化的应用程序中很常见。这是gettext.gettext(强调我的)文档

根据当前的全局域,语言和语言环境目录,返回消息的本地化翻译。在本地名称空间中,此函数通常别名为_()。

大多数程序的用法gettext.gettext如下:

import gettext
gettext.bindtextdomain('myapplication', '/path/to/my/language/directory')
gettext.textdomain('myapplication')
_ = gettext.gettext
# ...
print _('This is a translatable string.')

这样一来,您实际上不必在gettext所有需要翻译字符串的地方都键入内容

现在,所有这些,我所看到的for _ in range(catnum)远远超过了我所看到的for __ in range(catnum)我想您知道使用_是否会引起问题;您知道您在解释器中的工作,或者您知道您的应用程序_用作gettext.gettext别名。不过,使用__绝对安全。

如果我想知道为什么它没有流行起来,我想说也许是人们对它的推迟,__因为双下划线与Python的名称混杂的“私有”变量相关联,社区普遍认为这是不必要的。不过,只是一个猜测。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章