<div dir="ltr">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:<br><br>class A:<br> def POKUS(self, arg):<br> return arg<br>
<br>a = A()<br>key = 'POKUS'<br>arg = "test"<br><br>print getattr(a, key)(arg)<br><br>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).<br>
<br>Honza<br><br><br><br><div class="gmail_quote">2008/7/31 Martin Stiborský <span dir="ltr"><<a href="mailto:martin.stiborsky@gmail.com">martin.stiborsky@gmail.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Zdravím, opět bych vás rád poprosil o vaše rady a zkušenosti.<br>
<br>
Jde o to, že bych rád elegantně vyřešil jednu část mého programu. Píšu<br>
si jabber bota, který bude bydlet na mém routeru a hlídat některé<br>
věci, torrenty, datové přenosy, připojené uživatele, pro srandu jsem<br>
ho naučil i típnout aktuální dění kolem routeru z připojené kamerky,<br>
prostě taková hračka ..<br>
<br>
Problém je, že příkazů na které bot reaguje se už nahromadila celkem<br>
hromada. Ve slovníku si udržuji jako klíč slovo, nebo slova na které<br>
bot zareaguje a jako hodnota je odkaz na příslušnou metodu. Pokaždé<br>
když chci novou funkci bota, musím napsat metodu a přidat ji do<br>
slovníku + text na který bot reaguje. Toto bych chtěl automatizovat.<br>
Jenže hned první věc je, že nevím kam nacpat string který vyvolá<br>
funkci, zkusil jsem do šoupnout do __doc__ metody, při inicializaci<br>
třídy se projde jmenný prostor, vypreparuje se všechno co je metoda<br>
přes ismethod() z modulu inspect, koukne se na __doc__ metody a<br>
vytvoří slovník naplněný daty. To by snad i šlo, ale nelíbí se mi to<br>
..<br>
<br>
Za vaše rady a tipy bych byl velmi vděčný ...<br>
<br>
--<br>
S pozdravem<br>
Martin Stiborský<br>
<br>
Jabber: <a href="mailto:stibi@njs.netlab.cz">stibi@njs.netlab.cz</a><br>
ICQ: 224-065-849<br>
</blockquote></div><br></div>