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
>
>
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
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.
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
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
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