Is the single underscore “_” a built-in variable in Python?
我不明白这个下划线的意思。它是一个神奇的变量吗?我在locals()和globals()中看不到它。
1 2 3 4 5 | >>> 'abc' 'abc' >>> len(_) 3 >>> |
在标准python repl中,
例如:
1 2 3 4 5 6 7 8 | >>> 10 10 >>> _ 10 >>> _ + 5 15 >>> _ + 5 20 |
这是由
注意,在Python脚本中没有这样的功能。在脚本中,
另外,如果您想像上面那样使用repl,请注意在repl中重新分配
1 2 3 4 5 6 7 8 9 | >>> _ ="underscore" >>> 10 10 >>> _ + 5 Traceback (most recent call last): File"<pyshell#6>", line 1, in <module> _ + 5 TypeError: cannot concatenate 'str' and 'int' objects |
这将创建一个全局变量,隐藏内置的变量。要撤消分配(并从全局删除
1 | >>> del _ |
然后功能将恢复正常(将再次显示
为什么你看不见?它位于
1 2 | >>> __builtins__._ is _ True |
所以它既不是全球性的也不是地方性的。1个
这项任务是在哪里完成的?
1 2 3 4 5 6 7 8 | >>> import sys >>> help(sys.displayhook) Help on built-in function displayhook in module sys: displayhook(...) displayhook(object) -> None Print an object to sys.stdout and also save it in __builtin__. |
2012年编辑:我称之为"超级全球",因为任何模块中的所有成员都可用。
通常,我们在python中使用uu来绑定ugettext函数。