¿Cuál es la diferencia entre import modx y modx import *?

Si tuviera que importar un módulo llamado modx, ¿cómo sería diferente de decir

from modx import * 

¿No se importarán todos los contenidos de cada manera? Esto está en python solo para aclarar.

Si import somemodule los contenidos globales estarán disponibles a través de somemodule.someglobal . Si from somemodule import * TODOS sus globales (o los que se enumeran en __all__ si existe) se harán globales, es decir, puede acceder a ellos usando someglobal sin el nombre del módulo delante.

Se desaconseja el uso from module import * ya que desordena el ámbito global y, si importa material de varios módulos, es probable que se generen conflictos y se sobrescriban las clases / funciones existentes.

Si a define ab y ac

 import a ab() ac() 

contra

 from a import b b() c() # fails because c isn't imported 

contra

 from a import * b() c() 

Tenga en cuenta que from foo import * generalmente está mal visto desde:

  1. Pone las cosas en el espacio de nombres global sin darle un control fino
  2. Puede causar colisiones, debido a que todo está en el espacio de nombres global
  3. Esto hace que no quede claro qué se define realmente en el archivo actual, ya que la lista de lo que define puede variar según lo que se importe.

Pregunta común con muchas preguntas frecuentes para responder … aquí hay una: http://effbot.org/zone/import-confusion.htm

Esencialmente, para responder a su pregunta específica en el segundo formulario ( from modx import * ), solo obtiene los elementos públicos en modx