s tema argumentama u funkci se muzes obecne dost vyblbnout... (vizuj http://docs.python.org/2/tutorial/controlflow.html#more-on-defining-functions)
napr. starenka /tmp % cat meh.py #!/usr/bin/env python # coding=utf-8 def nejaka(prvni, druhej, treti): print prvni, druhej, treti def dalsi(prvni, *args): print prvni, args def este_jina(**kwargs): print kwargs def vrat_tri(): return 1, 2, 3 def vrat_dict(): return dict(prvni=1, druhej=2, treti=3) nejaka(*vrat_tri()) nejaka(*sorted(vrat_dict().values())) nejaka(**vrat_dict()) dalsi(*vrat_tri()) este_jina(**vrat_dict()) starenka /tmp % python meh.py 1 2 3 1 2 3 1 2 3 1 (2, 3) {'druhej': 2, 'prvni': 1, 'treti': 3} mej se s. --- In Perl you shoot yourself in the foot, but nobody can understand how you did it. Six months later, neither can you. | print 'aknerats'[::-1] 2014-02-21 20:25 GMT+01:00 Marcus Scalpere <xdlabac...@seznam.cz>: > Dne 21.2.2014 19:30, Petr Viktorin napsal(a): > >> 2014-02-21 18:52 GMT+01:00 Marcus Scalpere <xdlabac...@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@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! > > _______________________________________________ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz _______________________________________________ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz