Ver Mensaje Individual
  #7 (permalink)  
Antiguo 21/09/2011, 23:33
Avatar de diegoug
diegoug
 
Fecha de Ingreso: mayo-2011
Ubicación: Colombia
Mensajes: 52
Antigüedad: 13 años, 6 meses
Puntos: 1
Busqueda Respuesta: Recoger la variable de un bucle infinito

Ya mire la documentación y entiendo un poco mas, claro que tengo mis dudas acerca de algunas cosas;

Intente ejecutar los códigos como muestras pero nada, me salen errores:

Código:
# python a.py | python b.py
  File "b.py", line 3
SyntaxError: Non-ASCII character '\xc2' in file b.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
  File "a.py", line 3
SyntaxError: Non-ASCII character '\xc2' in file a.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
que arregle colocando el encoding:

Código:
#!/usr/bin/python
# -*- coding: utf-8 -*-
Luego me sale error de sintaxis:

Código:
python a.py | python b.py
  File "b.py", line 4
    * * while 1:
    ^
SyntaxError: invalid syntax
  File "a.py", line 5
    * * print i
    ^
SyntaxError: invalid syntax
Para el ejemplo que me estas mostrando, no se cual es la variable a exportar? tampoco se a donde cae la variable importada?

También mire el tema 16.6. multiprocessing — Process-based “threading” interface y me interesa la parte de "Queues" y "Pipes" pero como en los ejemplos, no entiendo como un archivo me manda la variable y como el otro la recibe

en Queues, a q se le entrega una lista,q es Queue, p? imprima q, p join?

Código:
from multiprocessing import Process, Queue

def f(q):
    q.put([42, None, 'hello'])

if __name__ == '__main__':
    q = Queue()
    p = Process(target=f, args=(q,))
    p.start()
    print q.get()    # prints "[42, None, 'hello']"
    p.join()
en Pipes, a conn.send se le manda una lista, conn.close cerrar, parent_conn? child_conn? = Pipe()? p = Process(target=f, args=(child_conn,))? p.start() iniciar proceso, print parent_conn.recv()? p.join()?

Código:
from multiprocessing import Process, Pipe

def f(conn):
    conn.send([42, None, 'hello'])
    conn.close()

if __name__ == '__main__':
    parent_conn, child_conn = Pipe()
    p = Process(target=f, args=(child_conn,))
    p.start()
    print parent_conn.recv()   # prints "[42, None, 'hello']"
    p.join()
Eso con respecto al flujo de los datos, gracias por tu ayuda y un gran saludo.
__________________
_________________________
Diego Alonso Uribe Gamez
Twitter: @DiegoUG