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
py
Chtělo by se říct "ne", ale budu konstruktivnější - na co to potřebuješ?
Osobně mi to smrdí blbým návrhem, nebo nepochopením, ale je možný, že mi
něco uniká. (Jinak teda, pokud vím, tak bez "nějakýho" importu to co chceš
prostě nejde)
Joža
2016-05-25 10:17 GMT+02:00 Libor Jelínek :
> Ahoj,
> exi
Motivace je jen lenost a taky by mi to přišlo přehlednější uvést FQN, pokud
importované "něco" použiju jen jednou.
___
Python mailing list
python@py.cz
http://www.py.cz/mailman/listinfo/python
Visit: http://www.py.cz
To mi, upřímně, přijde jako skoro ten nejblbější důvod (no offense). Ono
samozřejmě jde udělat třeba tohle:
__import__('tempfile').gettempdir()
Ale že by to bylo lepší, nebo nedej bože přehlednější, to teda není, a
fakt to nedoporučuju používat, pokud pro to nejsou skutečné důvody.
2016-05-25 1
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.
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.mess...@gmail.com
> Date: Wed, 25 May 2016 11:18:45 +0200
> To: python@py.cz
> Subject: Re: [p
Libor Jelínek wrote:
> 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?
>
http://peak.telecommunity.com/DevCenter/Importing
priklad:
lazyModule('tempfile.gettempdir')()
> Místo
>
>import tempfile
>t