Re: [python] Plně kvalifikovaný název místo importu?

2016-06-01 Tema obsahu garabik-news-2005-05
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
>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?

2016-05-25 Tema obsahu Pavel Řihošek
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?

2016-05-25 Tema obsahu Petr Messner
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?

2016-05-25 Tema obsahu Josef Skladanka
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?

2016-05-25 Tema obsahu 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


Re: [python] Plně kvalifikovaný název místo importu?

2016-05-25 Tema obsahu Josef Skladanka
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