Articles of generador de

Conexión de transmisión mediante botella de Python, multiprocesamiento y gevent

Tengo una aplicación de Botella que utiliza subprocesos para hacer la mayor parte del trabajo para las solicitudes. Para las rutas que devuelven una sola respuesta, hago algo como lo que se muestra a continuación. @route(‘/index’) def index(): worker = getWorker() return worker.doStuff() Una de mis rutas debe ser un flujo de datos. No puedo […]

Intentando entender el rendimiento como expresión.

Estoy jugando con generadores y expresiones de generadores y no estoy completamente seguro de que entienda cómo funcionan ( algunos materiales de referencia ): >>> a = (x for x in range(10)) >>> next(a) 0 >>> next(a) 1 >>> a.send(-1) 2 >>> next(a) 3 Por lo que parece que generator.send fue ignorado. Eso tiene sentido […]

Longitud de un generador finito

Tengo estas dos implementaciones para calcular la longitud de un generador finito, mientras conservo los datos para su procesamiento posterior: def count_generator1(generator): ”’- build a list with the generator data – get the length of the data – return both the length and the original data (in a list) WARNING: the memory use is unbounded, […]

tamaño del objeto generador en python

Para el siguiente código: import sys x=(i for i in range(1,11)) print x print ‘Before starting iterating generator size is’ ,sys.getsizeof(x) print ‘For first time’ for i in x: print i print ‘For second time , does not print anything’ for i in x: print i # does not print anything print ‘After iterating generator […]

Rindiendo hasta que se obtengan todos los valores necesarios, ¿hay alguna manera de hacer que la división se vuelva perezosa?

¿Hay alguna forma de dejar de rendir cuando el generador no terminó los valores y se leyeron todos los resultados necesarios? Quiero decir que el generador está dando valores sin hacer StopIteration. Por ejemplo, esto nunca se detiene: (REVISADO) from random import randint def devtrue(): while True: yield True answers=[False for _ in range(randint(100,100000))] answers[::randint(3,19)]=devtrue() […]

La mejor manera de ejecutar el código de limpieza del generador de Python

Estoy intentando escribir una función de generador que saca filas de una base de datos y las devuelve una a la vez. Sin embargo, no estoy seguro de si el código de limpieza marcado abajo ** se ejecuta como creo que lo hace. Si no lo hace, ¿cuál es la mejor manera de colocar el […]

seleccione un solo elemento de una colección: Python

Creé una función de utilidad para devolver el único elemento esperado de una expresión generadora print one(name for name in (‘bob’,’fred’) if name==’bob’) ¿Es esta una buena manera de hacerlo? def one(g): try: val = g.next() try: g.next() except StopIteration: return val else: raise Exception(‘Too many values’) except StopIteration: raise Exception(‘No values’)

Generando y guardando un archivo .eml con python 3.3

Estoy intentando generar correos electrónicos utilizando la biblioteca de correo electrónico estándar y guardarlos como archivos .eml. No debo entender cómo funciona email.generator porque sigo recibiendo el error ‘AttributeError: el objeto’ str ‘no tiene el atributo’ escribir ‘. from email import generator from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText active_dir = ‘c:\\’ class Gen_Emails(object): […]

¿Por qué este generador de Python está devolviendo el mismo valor cada vez?

Tengo este generador que produce listas: def gen(): state = [None] for i in range(5): state[0] = i yield state Y aquí está la salida, cuando la llamo: >>> list(gen()) [[4], [4], [4], [4], [4]] ¿Por qué son todos los elementos [4] ? ¿No debería ser [[0], [1], [2], [3], [4]] ?

Cachear un generador

Una pregunta similar reciente ( isinstance (foo, types.GeneratorType) o inspect.isgenerator (foo)? Me dio curiosidad sobre cómo implementar esto de manera genérica. Parece ser una cosa generalmente útil tener, en realidad, tener un objeto de tipo generador que se almacenará en caché la primera vez (como itertools.cycle ), informará sobre StopIteration y luego devolverá los elementos […]