[python] Tipy na návrh třídy
Jan Bednařík
jan.bednarik na gmail.com
Čtvrtek Červenec 31 22:51:14 CEST 2008
A proÄŤ se ty metody nepojmenuješ stejnÄ› jako klĂÄŤová slova na která majĂ
reagovat? Můžeš je pak jednoduše volat pomocà funkce getattr(), takto:
class A:
def POKUS(self, arg):
return arg
a = A()
key = 'POKUS'
arg = "test"
print getattr(a, key)(arg)
Pokud by šlo o to, aby pojmenovánà těch metod nebylo v rozporu s nějakými
pravidly pro psanĂ syntaxe, pĹ™ĂpadnÄ› aby nekazilo logiku pojmenovánĂ metod,
vyĹ™ešil bych to zdÄ›dÄ›nou tĹ™Ădou obsahujĂcĂ "škaredÄ›" pojmenovanĂ© metody
podle tÄ›ch klĂÄŤovĂ˝ch slov, kterĂ© budou pouze volat ty pÄ›knÄ› pojmenovanĂ©
zděděné metody (a předávat jim parametry).
Honza
2008/7/31 Martin StiborskĂ˝ <martin.stiborsky na gmail.com>
> ZdravĂm, opÄ›t bych vás rád poprosil o vaše rady a zkušenosti.
>
> Jde o to, Ĺľe bych rád elegantnÄ› vyĹ™ešil jednu část mĂ©ho programu. PĂšu
> si jabber bota, kterĂ˝ bude bydlet na mĂ©m routeru a hlĂdat nÄ›kterĂ©
> věci, torrenty, datové přenosy, připojené uživatele, pro srandu jsem
> ho nauÄŤil i tĂpnout aktuálnĂ dÄ›nĂ kolem routeru z pĹ™ipojenĂ© kamerky,
> prostě taková hračka ..
>
> ProblĂ©m je, Ĺľe pĹ™ĂkazĹŻ na kterĂ© bot reaguje se uĹľ nahromadila celkem
> hromada. Ve slovnĂku si udrĹľuji jako klĂÄŤ slovo, nebo slova na kterĂ©
> bot zareaguje a jako hodnota je odkaz na pĹ™Ăslušnou metodu. PokaĹľdĂ©
> kdyĹľ chci novou funkci bota, musĂm napsat metodu a pĹ™idat ji do
> slovnĂku + text na kterĂ˝ bot reaguje. Toto bych chtÄ›l automatizovat.
> JenĹľe hned prvnĂ vÄ›c je, Ĺľe nevĂm kam nacpat string kterĂ˝ vyvolá
> funkci, zkusil jsem do šoupnout do __doc__ metody, při inicializaci
> tĹ™Ădy se projde jmennĂ˝ prostor, vypreparuje se všechno co je metoda
> přes ismethod() z modulu inspect, koukne se na __doc__ metody a
> vytvořà slovnĂk naplnÄ›nĂ˝ daty. To by snad i šlo, ale nelĂbĂ se mi to
> ..
>
> Za vaše rady a tipy bych byl velmi vděčný ...
>
> --
> S pozdravem
> Martin StiborskĂ˝
>
> Jabber: stibi na njs.netlab.cz
> ICQ: 224-065-849
>
------------- daląí část ---------------
HTML pĹ™Ăloha byla odstranÄ›na...
URL: http://www.py.cz/pipermail/python/attachments/20080731/b9ad610e/attachment.htm
Daląí informace o konferenci Python