[python] Tipy na návrh třídy

Jan Janech devel na atlas.sk
Čtvrtek Červenec 31 17:01:17 CEST 2008


Dobry den,

osobne na taketo veci vyuzivam dekoratory. Napr. v tomto pripade by som 
spravil nieco taketo:

def command(name):
     def tmp(fnc):
         fnc.name = name
         return fnc
     return tmp

Hodnota name je potom pristupna ako atribut metody.

superman wrote:
> Dobrý den,
> 
> přímo se nabízí každé třídě vyhradit speciální metodu, například 
> getCommandText, která vrátí text, na který se reaguje. Případně to může 
> být i property CommandText.
> 
> Miloslav Ponkrác
> 
> Martin Stiborský napsal(a):
>> 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ý ...
>>
>>   
> 
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
> 
> 
> 


-- 

____________________________
Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita


Další informace o konferenci Python