lenguaje - python tutorial
¿El guión bajo "_" es una variable incorporada en Python? (3)
¿Por qué no puedes verlo? Está en __builtins__
>>> __builtins__._ is _
True
Entonces no es global ni local. 1
¿Y dónde sucede esta tarea? sys.displayhook :
>>> 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__.
1 2012 Editar: Yo lo llamaría "superglobal" ya que los miembros de __builtin__ están disponibles en todas partes, en cualquier módulo.
No entiendo lo que significa este subrayado único. ¿Es una variable mágica? No puedo verlo en locals () y globals ().
>>> ''abc''
''abc''
>>> len(_)
3
>>>
En el estándar Python REPL, _ representa el último valor devuelto: en el punto en el que llamó a len(_) , _ fue el valor ''abc'' .
Por ejemplo:
>>> 10
10
>>> _
10
>>> _ + 5
15
>>> _ + 5
20
Esto es manejado por sys.displayhook , y la variable _ va en el espacio de nombres builtins con cosas como int y sum , que es la razón por la cual no se pudo encontrar en globals() .
Tenga en cuenta que no existe tal funcionalidad dentro de los scripts de Python. En una secuencia de comandos, _ no tiene ningún significado especial y no se establecerá automáticamente en el valor producido por la instrucción anterior.
¡Además, tenga cuidado de reasignar _ en el REPL si desea usarlo como se indica arriba!
>>> _ = "underscore"
>>> 10
10
>>> _ + 5
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
_ + 5
TypeError: cannot concatenate ''str'' and ''int'' objects
Esto crea una variable global que oculta la variable _ en las incorporaciones. Para deshacer la tarea (y eliminar _ de globales), tendrás que:
>>> del _
entonces la funcionalidad volverá a ser normal (los builtins._ serán visibles de nuevo).
Por lo general, estamos usando _ en Python para enlazar una función ugettext.