Hay una parte de __import__
en la documentación de Python, que no entiendo:¿Para qué sirven los parámetros `globals` y` locals` en Python __import__?
__import__(name[, globals[, locals[, fromlist[, level]]]])
La función importa el módulo
name
, potencialmente mediante el dadoglobals
ylocals
para determinar cómo interpretar laname
en un contexto de paquete. La implementación estándar no usa su argumentolocals
, y usa suglobals
solo para determinar el contexto del paquete de la declaración de importación.
¿Qué hay para "interpretar" sobre el nombre del módulo? ¿Qué es el contexto del paquete?
Una llamada ejemplo usando estos parámetros tiene el siguiente aspecto:
spam = __import__('spam', globals(), locals(), [], -1)
¿Por qué sólo el ejemplo globals()
y locals()
a la función? ¿Qué sucede cuando solo proporciono globals()
? ¿O ninguno?
Probablemente me falta algo de la lógica del espacio de nombres en relación con la importación de módulos. ¿Podría señalarme un artículo que explica esto/tiene ejemplos con la función __import__
?
¿No debería esta pregunta trasladarse a StackOverflow? – EOL
Esto es gracioso, comencé a escribir esto en SO, pero estaba pensando si debería publicarlo en los programadores.SE en su lugar ... claramente necesito mirar las preguntas frecuentes ... –
Debe seleccionar una de las respuestas a continuación como el respuesta aceptada para esta pregunta. En mi humilde opinión, la respuesta de 9000 da en el clavo explicando qué hace Python con 'globales 'para determinar el espacio de nombres del módulo. – Kumba