La función embed () del módulo IPython hace posible incrustar IPython en el espacio de nombres de sus códigos Python. De este modo, puede aprovechar las funciones de IPython como la introspección de objetos y la finalización de pestañas, en el entorno predeterminado de Python.
Los objetos de Python presentes en el espacio de nombres global antes de la incrustación estarán disponibles para IPython.
Si se forman nuevos objetos mientras está en IPython o se modifican los objetos anteriores, estarán disponibles automáticamente para el entorno predeterminado después de salir de IPython. El shell de IPython incrustado no cambia el estado del código u objetos anteriores.
Sin embargo, si IPython está incrustado en el espacio de nombres local como dentro de una función, los objetos que contiene no estarán disponibles una vez que se cierre. Aquí, hemos definido una función add (). Dentro de add () invocamos IPython y declaramos una variable. Si intentamos acceder a la variable en IPython después de que se cierre, se generará la excepción NameError.