[python] Statické metody v Pythonu

superman feed na centrum.cz
Středa Listopad 8 16:18:00 CET 2006


> Mam jednu pripominku. Jak muzete definovat methodu tridy, kde neni prvni 
> parametr self (zemepisny_udel.static)? Muzete mi prosim ve zkratce 
> vysvetlit, co presne hledate? Uz se v tomhle threadu trosku ztracim a 
> docela rad bych problematice porozumel.

Původně jsem se ptal, jak takovou statickou metodu vůbec v Pythonu 
zapsat. Asi se to používá tak zřídka, že menuál mlčel a google též, a 
nebo což je pravděpodobnější jsem špatně hledal.

> Prosim jeste jednou o poslani mensiho popisu, co ocekavate za chovani.

Já čekám jen to, že bude ve třídě uhel existovat statická metoda, která 
převede string na radiány. Akorát formát toho stringu bude jiný pro 
matematický úhel, pro zeměpisnou délku, jiný pro zeměpisnou šířku a 
naprosto jiný formát pro astronomický úhel. Všechno to budou jiné třídy, 
ale všechny budou potomky třídy Angle (= matematický úhel). Už to mám na 
99% stejně všechno hotové a napsané.

Ve třídě Angle je definováno mnoho operací, z nichž asi dvacet závisí na 
převodu stringu na radiány. Proto jsem použil statickou metodu "konverze 
stringu na radiány", která je prostě v potomcích předefinována podle 
potřebného formátu stringu. Je to IMHO lepší, než těch dvacet metod 
znovu a znovu přepisovat do všech potomků, protože ty metody nepřinášejí 
principiálně nic nového.

Metoda konverze stringu na radiány nepotřebuje žádné proměnné zvenku a 
nezávisí na instanci, proto je zbytečné aby měla self. Ale chci po ní, 
aby se dala předefinovat v potomcích. To byl můj cíl a záměr. Děkuji 
všem za trpělivost.

Miloslav Ponkrác


Další informace o konferenci Python