Python 3.5¶
A continuación se muestra una lista de los PEP finalizados/aceptados para Python 3.5 agrupados según su impacto en MicroPython.
Extensiones de la sintaxis |
Estado |
|
Generalizaciones adicionales de desempaquetado |
Parcial |
|
Un nuevo operador de multiplicación de matrices |
Completo |
|
Corrutinas con la sintaxis |
Completo |
|
Extensiones y cambios en el tiempo de ejecución |
||
Formateo con % para cadenas binarias |
Completo |
|
Reintentar las llamadas al sistema que fallan con |
Completo |
|
Cambiar el manejo de |
Completo |
|
Cambios en la biblioteca estándar |
||
|
||
|
Completo |
|
Cambios diversos |
||
Soporte mejorado para aplicaciones zip de Python |
||
Hacer que el lanzador de Python reconozca los entornos virtuales |
No relevante |
|
Sugerencias de tipo (solo de carácter informativo) |
Completo [1] |
|
Eliminación de los archivos PYO |
No relevante |
|
Rediseño de la carga de módulos de extensión |
||
Otros cambios del lenguaje:
Se añadieron los manejadores de errores namereplace. Los manejadores de errores backslashreplace ahora funcionan con la decodificación y la traducción. |
|
Las cadenas de documentación de propiedades ahora son escribibles. Esto es especialmente útil para las cadenas de documentación de collections.namedtuple() |
|
Ahora se admiten las importaciones circulares que involucran importaciones relativas. |
Nuevos módulos:
Cambios en los módulos integrados:
La clase OrderedDict ahora está implementada en C, lo que la hace de 4 a 100 veces más rápida. |
|
Las vistas OrderedDict.items(), OrderedDict.keys(), OrderedDict.values() ahora admiten la iteración con reversed(). |
|
The deque class now defines index(), insert(), and copy(), and supports the + and * operators. |
|
Las cadenas de documentación producidas por namedtuple() ahora se pueden actualizar. |
|
La clase UserString ahora implementa los métodos __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable() y maketrans() para coincidir con los métodos correspondientes de str. |
|
La comparación de elementos en merge() ahora se puede personalizar pasando una función key en un nuevo argumento de palabra clave key opcional, y se puede usar un nuevo argumento de palabra clave reverse opcional para invertir la comparación de elementos |
|
Un nuevo método BufferedIOBase.readinto1(), que usa como máximo una llamada a los métodos RawIOBase.read() o RawIOBase.readinto() del flujo sin procesar subyacente |
|
El decodificador JSON ahora lanza JSONDecodeError en lugar de ValueError para proporcionar mejor información de contexto sobre el error. |
|
Se han añadido dos nuevas constantes al módulo math: inf y nan. |
Completo |
Una nueva función isclose() proporciona una forma de comprobar la igualdad aproximada. |
|
Se ha añadido una nueva función gcd(). La función fractions.gcd() ahora está obsoleta. |
|
Se ha añadido la nueva función scandir() que devuelve un iterador de objetos DirEntry. |
|
La función urandom() ahora usa la llamada al sistema getrandom() en Linux 3.17 o más reciente, y getentropy() en OpenBSD 5.6 y más reciente, eliminando la necesidad de usar /dev/urandom y evitando fallos debidos al posible agotamiento de descriptores de archivo. |
|
Las nuevas funciones get_blocking() y set_blocking() permiten obtener y establecer el modo de bloqueo de un descriptor de archivo (O_NONBLOCK). |
|
Hay una nueva función os.path.commonpath() que devuelve la subruta común más larga de cada nombre de ruta pasado |
|
Las referencias y referencias condicionales a grupos de longitud fija ahora están permitidas en las aserciones de búsqueda hacia atrás |
|
El número de grupos de captura en las expresiones regulares ya no está limitado a 100. |
|
Las funciones sub() y subn() ahora reemplazan los grupos no coincidentes con cadenas vacías en lugar de lanzar una excepción. |
|
Las excepciones re.error tienen nuevos atributos, msg, pattern, pos, lineno y colno, que proporcionan mejor información de contexto sobre el error |
|
Las funciones con tiempos de espera ahora usan un reloj monotónico, en lugar de un reloj del sistema. |
|
Un nuevo método socket.sendfile() permite enviar un archivo a través de un socket utilizando la función de alto rendimiento os.sendfile() en UNIX, lo que hace que las cargas sean de 2 a 3 veces más rápidas que al usar socket.send() simple |
|
El método socket.sendall() ya no restablece el tiempo de espera del socket cada vez que se reciben o envían bytes. El tiempo de espera del socket es ahora la duración total máxima para enviar todos los datos. |
|
El argumento backlog del método socket.listen() ahora es opcional. De forma predeterminada se establece en SOMAXCONN o en 128, el menor de los dos. |
Completo |
Soporte de BIO en memoria |
|
Soporte de negociación de protocolo de capa de aplicación |
|
Hay un nuevo método SSLSocket.version() para consultar la versión real del protocolo en uso. |
|
La clase SSLSocket ahora implementa un método SSLSocket.sendfile(). |
|
El método SSLSocket.send() ahora lanza la excepción ssl.SSLWantReadError o ssl.SSLWantWriteError en un socket no bloqueante si la operación se bloquearía. Anteriormente, devolvía 0. |
|
La función cert_time_to_seconds() ahora interpreta la hora de entrada como UTC y no como hora local, según el RFC 5280. Además, el valor devuelto es siempre un int. |
|
Los nuevos métodos SSLObject.shared_ciphers() y SSLSocket.shared_ciphers() devuelven la lista de cifrados enviados por el cliente durante el protocolo de enlace. |
|
Los métodos SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown() y SSLSocket.write() de la clase SSLSocket ya no restablecen el tiempo de espera del socket cada vez que se reciben o envían bytes. |
|
La función match_hostname() ahora admite la coincidencia de direcciones IP. |
|
Una nueva función set_coroutine_wrapper() permite establecer un gancho global que se llamará cada vez que una función async def cree un objeto corrutina. Se puede usar la función correspondiente get_coroutine_wrapper() para obtener un envoltorio actualmente establecido. |
|
Una nueva función is_finalizing() se puede usar para comprobar si el intérprete de Python se está cerrando. |
|
La función monotonic() ahora siempre está disponible |
|
Notas