[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