pyplot python next built-in

pyplot - subplot python



Python: ¿Por qué debería usar next() y no obj.next()? (3)

Python 2.6 introdujo una next función.

¿Por qué fue necesario esto? Siempre se podría escribir obj.next() lugar de next(obj) .

¿Es este último más pythonic ?


next(iterator[, default])

Recupere el siguiente elemento del iterador llamando a su método next() (__next__() en python 3) . Si se proporciona el valor predeterminado , se devuelve si el iterador está agotado; de lo contrario, se StopIteration .

Obtienes la opción por default .


Además de la funcionalidad adicional obvia, también se ve mejor cuando se usa junto con expresiones generadoras. Comparar

(x for x in lst if x > 2).next()

a

next(x for x in lst if x > 2)

Este último es mucho más consistente con el resto del estilo de Python, IMHO.


PEP 3114 describe este cambio. Un extracto de la motivación:

Este PEP propone que se __next__ nombre del next método a __next__ , consistente con todos los demás protocolos en Python en los que se llama implícitamente a un método como parte de un protocolo de nivel de idioma, y ​​que se introduzca una función incorporada llamada next para invocar __next__ Método, consistente con la manera en que otros protocolos son invocados explícitamente.

Asegúrese de leer este PEP para más detalles interesantes.

En cuanto a la razón por la que desea utilizar el next integrado: una buena razón es que el next método desaparece en Python 3, por lo que para la portabilidad es mejor comenzar a usar el next incorporado lo antes posible.