alw*_*btc 570 python variables naming-conventions metasyntactic-variable
在这段代码中,_
after 的含义是什么for
?
if tbh.bag:
n = 0
for _ in tbh.bag.atom_set():
n += 1
Run Code Online (Sandbox Code Playgroud)
nco*_*lan 719
_
Python中有3个主要的常规用途:
raise forms.ValidationError(_("Please enter a correct username"))
label, has_label, _ = text.partition(':')
后两个目的可能会发生冲突,因此有必要避免def
在任何代码块中使用它作为一次性变量,并将其用于i18n转换(许多人更喜欢双下划线lambda
,因为它们是一次性变量,正是出于这个原因).
gst*_*eff 191
它只是一个变量名,在python _
中常用于一次性变量.它只是表明实际上没有使用循环变量.
Ash*_*ahu 66
在Python中,下划线_
被视为" 我不关心 "或" 丢失 "变量
python解释器将最后一个表达式值存储到名为的特殊变量中_
.
>>> 10
10
>>> _
10
>>> _ * 3
30
Run Code Online (Sandbox Code Playgroud)下划线_
也用于忽略特定值.如果您不需要特定值或未使用这些值,只需将值分配给下划线即可.
解包时忽略一个值
x, _, y = (1, 2, 3)
>>> x
1
>>> y
3
Run Code Online (Sandbox Code Playgroud)
忽略索引
for _ in range(10):
do_something()
Run Code Online (Sandbox Code Playgroud)Rec*_*eck 18
在Python中使用下划线有5种情况.
用于存储解释器中最后一个表达式的值.
忽略具体值.(所谓的"我不在乎")
赋予vartiables或函数名称特殊的含义和功能.
用作'国际化(i18n)'或'本地化(l10n)'功能.
分隔数字文字值的数字.
这是一篇很好的文章,有mingrammer的例子.
就 Python 语言而言,_
没有特殊意义。它是一个有效的标识符,就像_foo
,foo_
或 一样_f_o_o_
。
的任何特殊含义_
纯属约定俗成。常见的有几种情况:
不打算使用变量时的虚拟名称,但语法/语义需要名称。
# iteration disregarding content
sum(1 for _ in some_iterable)
# unpacking disregarding specific elements
head, *_ = values
# function disregarding its argument
def callback(_): return True
Run Code Online (Sandbox Code Playgroud)
许多 REPL/shell 将最后一个顶级表达式的结果存储到builtins._
.
_
交互式解释器中使用特殊标识符来存储上次评估的结果;它存储在builtins
模块中。不处于交互模式时,_
没有特殊含义且未定义。[来源]
由于查找名称的方式,除非被全局或本地_
定义遮蔽,否则裸_
指的是builtins._
.
>>> 42
42
>>> f'the last answer is {_}'
'the last answer is 42'
>>> _
'the last answer is 42'
>>> _ = 4 # shadow ``builtins._`` with global ``_``
>>> 23
23
>>> _
4
Run Code Online (Sandbox Code Playgroud)
注意:一些外壳,例如ipython
不分配给builtins._
但特殊情况_
。
在上下文国际化和本地化中,_
用作主要翻译功能的别名。
gettext.gettext(消息)
根据当前的全局域、语言和区域设置目录返回消息的本地化翻译。此函数通常
_()
在本地命名空间中使用别名(请参见下面的示例)。
归档时间: |
|
查看次数: |
243292 次 |
最近记录: |