我在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] 删除。
我来说两句