Estoy tratando de obtener un módulo para importar, pero sólo si un objeto de una clase específica se llama. Por ejemplo:Python importar un módulo en una clase única
class One(object):
try:
import OneHelper
except ImportError:
pass
def __init__(self):
# this function doesn't use OneHelper
...
def blah(self):
# this function does
OneHelper.blah()
Esto provoca una NameError: global name 'OneHelper' is not defined
cuando la función se llama One.blah()
. Hasta ahora, lo único que he encontrado que funciona es importar el módulo a las funciones reales que lo usan. Por lo tanto:
class One(object):
def __init__(self):
# this function doesn't use OneHelper
...
def blah(self):
try:
import OneHelper
except ImportError:
pass
# this function does
OneHelper.blah()
Pero yo no quiero tener que importar el módulo en cada función que quiero utilizarlo en, yo quiero que sea disponible para toda la clase, pero solamente si una instancia de esa clase es instanciada. Disculpas si no estoy siendo lo suficientemente claro ...
usted podría intentar crear una función que importa la clase si una instancia y luego simplemente llamar a la función desde dentro de las otras funciones. Pequeña solución tal vez. –