Re: [python] Plně kvalifikovaný název místo importu?
Libor Jelínekwrote: > 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 >tempfile.gettempdir() > > jen něco jako > >tempfile.gettempdir() > > ? -- --- | Radovan Garabík http://kassiopeia.juls.savba.sk/~garabik/ | | __..--^^^--..__garabik @ kassiopeia.juls.savba.sk | --- Antivirus alert: file .signature infected by signature virus. Hi! I'm a signature virus! Copy me into your signature file to help me spread! ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Plně kvalifikovaný název místo importu?
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: [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 <ljeli...@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@py.cz > > http://www.py.cz/mailman/listinfo/python > > > > Visit: http://www.py.cz > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
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: > 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@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Plně kvalifikovaný název místo importu?
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 10:28 GMT+02:00 Libor Jelínek: > 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 > -- "The best is the enemy of the good." --Voltaire ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Plně kvalifikovaný název místo importu?
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
Re: [python] Plně kvalifikovaný název místo importu?
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, > 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@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > -- "The best is the enemy of the good." --Voltaire ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz