[python] Třídy, metody, argumenty
Marcus Scalpere
xdlabacekm na seznam.cz
Pátek Únor 21 20:25:17 CET 2014
Dne 21.2.2014 19:30, Petr Viktorin napsal(a):
> 2014-02-21 18:52 GMT+01:00 Marcus Scalpere <xdlabacekm na seznam.cz>:
>> Zdravím,
>> můj dotaz je lepší asi předvést než vysvětlovat, takže:
>>
>> class pokus:
>> def __init__(self, vstup):
>> self.vstup = vstup
>>
>> def nejaka_funkce(self):
>> return (self.rok + 9) % 28
>>
>> def jina_funkce():
>> return ((self.nejaka_funkce - 1) * 11) % 30
>>
>> prvni = pokus(1845)
>> print (prvni.jina_funkce())
>>
>> (Jen příklad, skutečnost je trochu složitější, ale i kdyby nebyla, chci na
>> to přijít)
>> Je jasný, že mi to vyhodí chybu, poskytuji argument a přitom žádný
>> nepotřebuje. Takže moje otázka je - jak to provést, abych mohl ve třídě
>> používat metody, které mají jako argument výsledek jiné funkce ve třídě? A
>> zároveň abych neměl problém při volání? Je mi jasný, že to určitě nějak
>> jde...a omluvte mě, na OOP stále koukám jak pavián na Rosettskou desku:/
> Je to celkem jednoduché: metody definuješ se "self", ale voláš bez
> "self" (ten se doplní sám, z objektu na kterém tu metodu voláš):
>
> class pokus:
> def __init__(self, rok):
> self.rok = rok
>
> def nejaka_funkce(self):
> return (self.rok + 9) % 28
>
> def jina_funkce(self):
> return ((self.nejaka_funkce() - 1) * 11) % 30
>
> prvni = pokus(1845)
> print (prvni.jina_funkce())
> _______________________________________________
> Python mailing list
> python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
No jasně, čekal jsem, že to bude jen nějaká drobnost. Hned se cítím o
něco dospělejší. Vše funguje jak má, děkuji mnohokráte!
Další informace o konferenci Python