Re: [python] Dynamický import
V Thu, 04 Jan 2007 11:27:22 +0100, radek napsal(a): > Muzete sem napsat v jakem konkretnim pripade to potrebujete? To je > tech importu tolik, ze nejdou udelat vsechny na zacatku a pak vybrat > jenom konkretni class pro instanci? > > Sice dynamicky import jde, ale pak to dost znesnadnuje analyzu chyb. > > Radek > Já podobně řeším zobrazení rubriky/článku v on.line časopise. Když si vymyslím nový formát, napíšu potřebnou třídu, která implementuje metodu známého jména (u mě html()) a v db řeknu rubrice/článku aby ji používal/a pro své zobrazení. Přijde mi to elegantní a flexibilní. -- Petr Janda ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Dynamický import
V Thu, 04 Jan 2007 11:27:22 +0100, radek napsal(a): > Muzete sem napsat v jakem konkretnim pripade to potrebujete? To je > tech importu tolik, ze nejdou udelat vsechny na zacatku a pak vybrat > jenom konkretni class pro instanci? > > Sice dynamicky import jde, ale pak to dost znesnadnuje analyzu chyb. > > Radek > Já podobně řeším zobrazení rubriky/článku v on.line časopise. Když si vymyslím nový formát, napíšu potřebnou třídu, která implementuje metodu známého jména (u mě html()) a v db řeknu rubrice/článku aby ji používal/a pro své zobrazení. Přijde mi to elegantní a flexibilní. -- Petr Janda ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Dynamický import
Je to podobné jako interface v Java. K řešení konkrétního "problému" je v IS jeden objekt, časem problémy přibývají a tím i objekty. Vím co je to za problém tak potřebuji konkrétní objekt na ošetření. Snad jsem se vyjádřil srozumitelně. radek napsal: > Muzete sem napsat v jakem konkretnim pripade to potrebujete? To je > tech importu tolik, ze nejdou udelat vsechny na zacatku a pak vybrat > jenom konkretni class pro instanci? > > Sice dynamicky import jde, ale pak to dost znesnadnuje analyzu chyb. > > Radek > > On 1/4/07, mtip <[EMAIL PROTECTED]> wrote: > > VV> Ahoj, > > > > VV> potřeboval bych poradit jak provést import a následně instanci > > VV> třídy, když načtu názey třídy z DB. V balíčku je několik > > VV> objektů, které mají stejné metody, potřebuji na základě dotazu > > VV> do DB naimportovat konkrétní třídu z konkrétního modulu (názvy > > VV> jsou stejné) a pak vytvořit instanci, název třídy je v proměnné. > > > > VV> nějak takto: > > > > VV> className="třída" > > VV> importuj(className) > > VV> instance=vytvořInstanci(className) > > > > VV> Díky moc za radu > > > > VV> V. > > > > VV> ___ > > VV> Python mailing list > > VV> Python@py.cz > > VV> http://www.py.cz/mailman/listinfo/python > > > > > > > > > > --- > > > > Ahoj, ted sem zrovna resil neco podobneho, ja pouzivam tohle: > > mod="util.modul" > > cls="className" > > eval(compile("import %s" % mod, "", "exec")) > > instance=eval("%s.%s()" % (mod,cls)) > > > > -- > > Mirek N. > > > > ___ > > Python mailing list > > Python@py.cz > > http://www.py.cz/mailman/listinfo/python > > ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Dynamický import
Přesně takto jsem si to představoval. Díky moc! - > Ahoj, > > zkusil bych: > className='jmenoTridy' > packageName = 'jmenoBalicku' > moduleName = 'jmenoModulu' > > modul = __import__('%s.%s' > %(packageName,mouleName),globals(),locals(),['%s' %packageName]) > trida = modul.__getattribute__(className) > instance = trida() > > > -- > Petr Janda ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Dynamický import
V Thu, 04 Jan 2007 01:53:02 -0800, Vaclav Vais napsal(a): > Ahoj, > > potřeboval bych poradit jak provést import a následně instanci > třídy, když načtu názey třídy z DB. V balíčku je několik > objektů, které mají stejné metody, potřebuji na základě dotazu > do DB naimportovat konkrétní třídu z konkrétního modulu (názvy > jsou stejné) a pak vytvořit instanci, název třídy je v proměnné. > > nějak takto: > > className="třída" > importuj(className) > instance=vytvořInstanci(className) > > Díky moc za radu > > V. Ahoj, zkusil bych: className='jmenoTridy' packageName = 'jmenoBalicku' moduleName = 'jmenoModulu' modul = __import__('%s.%s' %(packageName,mouleName),globals(),locals(),['%s' %packageName]) trida = modul.__getattribute__(className) instance = trida() -- Petr Janda ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Dynamický import
Muzete sem napsat v jakem konkretnim pripade to potrebujete? To je tech importu tolik, ze nejdou udelat vsechny na zacatku a pak vybrat jenom konkretni class pro instanci? Sice dynamicky import jde, ale pak to dost znesnadnuje analyzu chyb. Radek On 1/4/07, mtip <[EMAIL PROTECTED]> wrote: > VV> Ahoj, > > VV> potřeboval bych poradit jak provést import a následně instanci > VV> třídy, když načtu názey třídy z DB. V balíčku je několik > VV> objektů, které mají stejné metody, potřebuji na základě dotazu > VV> do DB naimportovat konkrétní třídu z konkrétního modulu (názvy > VV> jsou stejné) a pak vytvořit instanci, název třídy je v proměnné. > > VV> nějak takto: > > VV> className="třída" > VV> importuj(className) > VV> instance=vytvořInstanci(className) > > VV> Díky moc za radu > > VV> V. > > VV> ___ > VV> Python mailing list > VV> Python@py.cz > VV> http://www.py.cz/mailman/listinfo/python > > > > > --- > > Ahoj, ted sem zrovna resil neco podobneho, ja pouzivam tohle: > mod="util.modul" > cls="className" > eval(compile("import %s" % mod, "", "exec")) > instance=eval("%s.%s()" % (mod,cls)) > > -- > Mirek N. > > ___ > Python mailing list > Python@py.cz > http://www.py.cz/mailman/listinfo/python > ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Dynamický import
VV> Ahoj, VV> potřeboval bych poradit jak provést import a následně instanci VV> třídy, když načtu názey třídy z DB. V balíčku je několik VV> objektů, které mají stejné metody, potřebuji na základě dotazu VV> do DB naimportovat konkrétní třídu z konkrétního modulu (názvy VV> jsou stejné) a pak vytvořit instanci, název třídy je v proměnné. VV> nějak takto: VV> className="třída" VV> importuj(className) VV> instance=vytvořInstanci(className) VV> Díky moc za radu VV> V. VV> ___ VV> Python mailing list VV> Python@py.cz VV> http://www.py.cz/mailman/listinfo/python --- Ahoj, ted sem zrovna resil neco podobneho, ja pouzivam tohle: mod="util.modul" cls="className" eval(compile("import %s" % mod, "", "exec")) instance=eval("%s.%s()" % (mod,cls)) -- Mirek N. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python