[python] Plně kvalifikovaný název místo importu?
Pavel Řihošek
pavel.rihosek na outlook.com
Středa Květen 25 14:08:21 CEST 2016
Můžeš použít funkci __import__ asi takto:
>>> __import__("math").factorial(9)
362880
Nevím, jestli to je to, cos chtěl, ale v zásadě mi to přijde podobné.
> From: petr.messner na gmail.com
> Date: Wed, 25 May 2016 11:18:45 +0200
> To: python na py.cz
> Subject: Re: [python] Plně kvalifikovaný název místo importu?
>
> Ahoj,
>
> tohle bohužel takhle nejde.
>
> Jedním z důvodů (aspoň podle mě :) ) je, že svět modulů a balíčků je jiný svět, než svět proměnných a hodnot uvnitř nich. Takže Python by vlastně nevěděl, co a jak naimportovat. Když to napíšete explicitně jako import, tak je jasné, který modul to přesně je.
>
> Je to vidět i z toho, že kdekoliv se nějak specifikuje cesta k Python objektu - např. app v gunicornu - tak je modul zřetelně oddělený od "cesty" v tom modulu.
>
> V Javě to lze, ale to je dost možná proto, že její třídy mají ve skutečnosti interně plný (absolutní) název a navíc mají jasně dané místo v adresářové struktuře.
>
> Petr Messner
>
> 25. 5. 2016 v 10:17, Libor Jelínek <ljelinek na virtage.com>:
>
> > Ahoj,
> > existuje nějaký způsob např. zavolání funkce modulu plně kvalifikovaným názvem aniž by ho bylo třeba nutné nejprv importovat?
> >
> > Místo
> >
> > import tempfile
> > tempfile.gettempdir()
> >
> > jen něco jako
> >
> > tempfile.gettempdir()
> >
> > ?
> > _______________________________________________
> > Python mailing list
> > python na py.cz
> > http://www.py.cz/mailman/listinfo/python
> >
> > Visit: http://www.py.cz
> _______________________________________________
> Python mailing list
> python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20160525/3f27d192/attachment.html>
Další informace o konferenci Python