[python] Statické metody v Pythonu

superman feed na centrum.cz
Středa Listopad 8 17:44:36 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