Detener la importacion de un modulo

lasizoillo lasizoillo en gmail.com
Mar Mar 17 01:06:43 CET 2009


El día 17 de marzo de 2009 0:23, Jose Caballero
<jcaballero.hep en gmail.com> escribió:
> El 16 de marzo de 2009 23:58, lasizoillo <lasizoillo en gmail.com> escribió:
>
>> El día 16 de marzo de 2009 22:29, Oswaldo Hernández
>> <listas en soft-com.es> escribió:
>> > Hola,
>> >
>> > ¿Hay alguna forma de que cuando se importe un modulo pare la importacion
>> y
>> > vuelva al modulo que lo ha llamado?, Es decir que haga una especie de
>> return
>> > pero a nivel de modulo.
>> >
>> >
>> > # modulo.py
>> >
>> > class ....
>> >
>> > if CondicionDeImport == False:
>> >    # no continuar la importacion del resto del modulo
>> >    return      # -> ERROR
>> >
>> > class ...
>> > etc ..
>>
>> que tal algo como:
>>
>> class ...
>>
>> if CondicionDelImport:
>>  class ...
>>  etc ...
>>
>> Lo que declares deltro del if se va a declarar exactamente igual que
>> si estuviera fuera del mismo ;-)
>>
>
>
>
> Y eso funciona??
> Mi pregunta es: donde se da un valor a CondicionDeImport?

No tengo ni la menor idea de donde viene ese "flag". No es mi codigo.

Pero hacer declaraciones condicionales es bastante normal:
try:
    import cmemcache as memcache
except ImportError:
    try:
        import memcache
    except ImportError:
        raise InvalidCacheBackendError("Memcached cache backend
requires either the 'memcache' or 'cmemcache' library")

El codigo anterior necesita un cliente de memcache y prueba entre dos.
Tambien puede ser que un modulo trate de hacer un parche a una
determinada versión de python o de una determinada libreria. Ese
parche se ejecutaria dentro de una condición.

Los modulos son igual de dinamicos que las clases. Puedes insertarles
funciones, atributos o clases según te apetezca. Pero si no lo haces,
tu código será más fácil de seguir ;-)

> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es