Pregunta

No puedo resolver esto. En Terminal, importo un módulo que crea una instancia de una clase, a la que no he descubierto cómo acceder. Por supuesto, siempre puedo crear instancias en la Terminal:

Server=Data.ServerData()

Entonces puedo obtener un resultado:

Server.Property().DefaultChart

Sin embargo, quiero omitir ese paso y obtener el resultado directamente de la instancia que ya se está ejecutando en el módulo. Creo que Data.Server en este caso debería cargar la instancia del servidor desde que importé los datos:

Data.Server.Property().DefaultChart

>>> AttributeError: 'module' object has no attribute 'Server'

Entonces, ¿cómo acceder a la instancia en ejecución desde la Terminal?

¿Fue útil?

Solución

Si la importación de Data.py crea implícitamente una instancia de la clase Data.ServerData (algo dudosa, pero está bien en ciertos casos), eso todavía no nos dice nada acerca de cómo ese módulo eligió nombrar esa instancia. Haga dir (Data) en el indicador > > > para ver todos los nombres definidos en el módulo Data ; si desea ver qué nombres (si los hay) tienen valores que son instancias de Data.ServerData , por ejemplo:

>>> [n for n in dir(Data) if isinstance(getattr(Data,n), Data.ServerData)]

Leer el código fuente de Data.py podría ser más simple, pero tiene muchas otras opciones para que dicha introspección descubra exactamente qué está sucediendo (y en qué se diferencia de lo que ESPERA [[ no estoy seguro sobre qué base]]] estar pasando).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top