doctest.testmod() if __name__ == "__main__": _doctest() 2. Implementar: ▪ um servidor que publique um objeto distribuído e este evoque a função tribonacci. ▪ um cliente que use o objeto distribuído para calcular a seqüência de Tribonacci. Solução: Servidor: # -*- coding: latin1 -*- import Pyro.core # Importa o módulo com a função import trib class Dist(Pyro.core.ObjBase): @staticmethod def tribonacci(n): return trib.tribonacci(n) if __name__ == '__main__': # Define a porta TCP/IP usada pelo Pyro Pyro.config.PYRO_PORT = 8888 # Define o limite de cliente ao mesmo tempo Pyro.config.PYRO_MAXCONNECTIONS = 2000 Pyro.core.initServer() # norange=1 faz com que o Pyro sempre use a mesma porta daemon = Pyro.core.Daemon(norange = 1) # Define o limite de tempo daemon.setTimeout(300) uri = daemon.connect(Dist(),'dist') daemon.requestLoop() Cliente: 250 Apêndices # -*- coding: latin1 -*- import Pyro.core # URL com a porta url = 'PYROLOC://127.0.0.1:8888/dist' proxy = Pyro.core.getProxyForURI(url) # Teste com até dez elementos for i in range(10): print i + 1, '=>', proxy.tribonacci(i + 1) Saída: Pyro Client Initialized. Using Pyro V3.7 1 => [1] 2 => [1, 1] 3 => [1, 1, 2] 4 => [1, 1, 2, 4] 5 => [1, 1, 2, 4, 7] 6 => [1, 1, 2, 4, 7, 13] 7 => [1, 1, 2, 4, 7, 13, 24] 8 => [1, 1, 2, 4, 7, 13, 24, 44] 9 => [1, 1, 2, 4, 7, 13, 24, 44, 81] 10 => [1, 1, 2, 4, 7, 13, 24, 44, 81, 149] Índice remissivo 251 Índice remissivo Arquivos...........................................................................................................................................53 Arranjos...........................................................................................................................................106 Banco de dados...........................................................................................................133, 144p., 147 Bibliotecas de terceiros....................................................................................................................51 Blender...................................................................................................................................8, 127pp. BrOffice.org................................................................................................................................8, 117 Bytecode............................................................................................................................................10 CherryPy.................................................................................................................................151, 156 CherryTemplate.............................................................................................................151, 153, 156 Classes........................................................................................................80p., 85pp., 89, 91, 95, 97 Comentários funcionais..................................................................................................................15 Controle de fluxo.............................................................................................................................18 CPython...............................................................................................................................................9 DBI........................................................................................................................................144p., 147 Decoradores......................................................................................................................................78 Dicionários....................................................................................................................................32p. Doc Strings..............................................................................................................37, 40, 43, 62, 100 Duck Typing.....................................................................................................................................10 ElementTree........................................................................................................................139, 141p. Empacotamento.............................................................................................................................196 Exceções.........................................................................................................................................57p. False...................................................................................................................................................36 Ferramentas......................................................................................................................................12 Funções........................................................................................................................................27, 37 Generator Expression..................................................................................................................74p. Geradores..........................................................................................................................................67 GIMP....................................................................................................................................................8 Glade............................................................................................................................166, 168p., 174 Gráficos...........................................................................................................................................111 GTK+........................................................................................................................................166, 168 Herança.......................................................................................................................................87, 89 Histórico..............................................................................................................................................8 IDE.....................................................................................................................................................12 Interface gráfica..........................................................................................................................166p. Introspecção..................................................................................................................................62p. IronPython........................................................................................................................204pp., 208 Laços..................................................................................................................................................20 Lambda.............................................................................................................................................69 252 Índice remissivo Lazy Evaluation...............................................................................................................................67 Linguagem C...............................................................................................................................200p. List Comprehension.....................................................................................................................74p. Listas..............................................................................................................................................29p. Mapeamento objeto-relacional....................................................................................................147 Matplotlib.......................................................................................................................................111