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(). | |
La clase deque ahora define index(), insert() y copy(), y admite los operadores + y *. | |
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