[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