[python] import

Martin Blazik martin.blazik na premiumsms.cz
Pátek Červenec 1 16:23:07 CEST 2005


Super, dik. Primo reseni z manualove stranky (cetl jsem to koukam dost 
ledabyle)

def _import(name):
    mod = __import__(name)
    components = name.split('.')
    for comp in components[1:]:
        mod = getattr(mod, comp)
    return mod

name = 'one.two.three'
_import(name).foo(...)


lachtan

Jaroslav Pachola napsal(a):

>Aha,
>
>Dne Friday 01 July 2005 15:49 Martin Blazik napsal(a):
>  
>
>>Jeste maly dodatek, jsem asi jasne nerekl, ze ty moduly mam jako retezec
>>(nacita se z textoveho konfiguracniho souboru). Metodu foo() uz znam
>>korektne jmenem.
>>(Re: se mi tam vetrelo jen diky me lenosti :)
>>
>>lachtan
>>
>>    
>>
>
>ale to by nemelo vadit. Vzdycky se da udelat nejaka vlastni metoda pro 
>importovani modulu, ktera nahraje modul pomoci __import__(), pak si 
>zanalyzuje ten retezec (moduleName.split(.)) a pak vyextrahuje ten kyzeny 
>modul pomoci funkce getattr() - klidne i opakovane, pokud v tom nazvu modulu 
>je vic tecek - a ten modul vrati.
>
>JP
>_______________________________________________
>Python mailing list
>Python na py.cz
>http://www.py.cz/mailman/listinfo/python
>
>  
>



Další informace o konferenci Python