Tak to je to ještě rafinovanější, než jsem si myslel. Tomáš Drenčák píše v Po 08. 03. 2010 v 12:00 +0100: > no hej...aj tak sa to da, len tie xml metody neexistuju lokalne, ich > nazov sa odvodi od nazvu volanej funkcie > > v zdrojakoch ServerProxy je tato metoda: > > def __getattr__(self, name): > # magic method dispatcher > return _Method(self.__request, name) > > ono to vrati objekt _Method, ktory obsahuje nazov volanej metody (name > parameter) a kedze za nazvom parametra su (), tak sa zavola metoda > __call__ na objekte _Method > > proxy = ServerProxy(...) > proxy.xxx # toto je objekt _Method > proxy.xxx() # toto je volanie _Method.__call__(...) > > > > > V Pondelok, 8. marec 2010 o 11:51 +0100, David Rohleder napísal(a): > > Fakt, že jo, měl jsem to skoro dobře, funguje to třeba i takto: > > > > > > class Test: > > pass > > > > def fce(): > > print "Test" > > > > a=Test() > > a.__dict__['test'] = fce > > a.test() > > > > Tomáš Drenčák píše v Po 08. 03. 2010 v 11:48 +0100: > > > nevidel som to, ale predpokladam ze pouzivaju __getattr__ metodu > > > http://docs.python.org/reference/datamodel.html#object.__getattr__ > > > > > > V Pondelok, 8. marec 2010 o 11:43 +0100, David Rohleder napísal(a): > > > > Jirka Vejrazka píše v Po 08. 03. 2010 v 10:05 +0100: > > > > > > Který nový rys pythonu od verze 2.0 vám přijde zajímavý, případně > > > > > > užitečný? (iterátory, generátory, dekorátory, atd.) > > > > > > > > > > Vsechny zminene, k tomu jeste mnoziny ( set() ) a par internich veci. > > > > > Ale mne drzi u Pythonu dve zakladni veci: > > > > > - vyborna citelnost ciziho kodu diky kontroverznimu odsazovani > > > > > - obrovsky rozsah externich modulu a funkci, ktere jsou dostupne. Pro > > > > > mne od nizkourovnovych veci na siti (scapy, impacket, dpkt, dnet) pres > > > > > kompletni sitove frameworky (twisted) az po webove frameworky (Django > > > > > apod.) > > > > > > > > > > Zminuju to jenom proto, ze ve svetle techto dvou velkych vyhod me > > > > > jednotlive "nelogicnosti" jazyka nechavaji chadnym. Nelibi se mi treba > > > > > ''.join(neco), ale jsem ochotny si na to zvyknout, beru to jako dan > > > > > za pohodli v ostatnich vecech. > > > > > > > > Mne fascinuje dynamické vytváření funkcí, akorát teda nevím, jak to > > > > dělají, příklad u XML-RPC. Na serveru jsou definované přes XML-RPC > > > > nějaké služby, tj. funkce a najednou mám ty funkce i ve svém vlastním > > > > programu, aniž bych je musel nějak definovat: > > > > > > > > (funkce listblockedIP a blockIP jsou metody definované na serveru a > > > > ServerProxy opravdu nemá nadefinované metody listblockedIP a další) > > > > > > > > ==== > > > > import xmlrpclib, sys > > > > > > > > url = "http://localhost:8765/" > > > > > > > > s = xmlrpclib.ServerProxy(url) > > > > > > > > blkdIP = s.listblockedIP() > > > > > > > > print blkdIP > > > > > > > > print s.blockIP( 126, 6, 4, 5) > > > > ==== > > > > > > > > Říkal jsem si, že je to udělané pomocí slovníku, třeba takto: > > > > > > > > class Test: > > > > pass > > > > > > > > def fce(): > > > > print "Test" > > > > > > > > a=Test() > > > > a['funkce'] = fce > > > > a.funkce() > > > > > > > > ale takto to nějak nefunguje. > > > > > > > > > > > > > > > > D. > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > Python mailing list > > > > [email protected] > > > > http://www.py.cz/mailman/listinfo/python > > > > > > > > > _______________________________________________ > > > Python mailing list > > > [email protected] > > > http://www.py.cz/mailman/listinfo/python > > > > > > _______________________________________________ > > Python mailing list > > [email protected] > > http://www.py.cz/mailman/listinfo/python > > > _______________________________________________ > Python mailing list > [email protected] > http://www.py.cz/mailman/listinfo/python
_______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
