(Desarrolladores estrella de Python para mejorar las habilidades de Python)
Acabado original: desarrollador de Python (id: PythonCoder)
El 15 de octubre, se lanzó oficialmente la versión estable de Python 3.8 ~
El sitio web oficial también publicó un artículo que presenta las nuevas características de la v3.8. He aquí un resumen:
1. Nuevo operador de asignación: = Función: Asignar una determinada parte de una expresión más grande a una variable.
Debido a que se parece a los ojos y los dientes de una morsa, el operador : = tiene un nombre especial: el operador de morsa
Ejemplo 1:
if (n := len(a)) > 10:
print(f"List is too long ({n} elements, expected <= 10)")
Usado: = para evitar llamar a len () dos veces.
Ejemplo 2:
discount = 0.0
if (mo := re.search(r'(\d+)% discount', advertisement)):
discount = float(mo.group(1)) / 100.0
A juzgar por los comentarios actuales en línea, la mayoría piensa que aunque el código se guarda, la legibilidad se reduce.
2. Símbolos de sintaxis / parámetros solo posicionales recientemente agregados ( parámetros solo posicionales )
Rol: indica que algunos parámetros de función deben especificar la posición y no se pueden usar como parámetros de palabras clave.
ejemplo
def f(a, b, /, c, d, *, e, f):
print(a, b, c, d, e, f)
En este ejemplo, los parámetros ayb son solo parámetros posicionales, y c o d pueden ser solo parámetros posicionales o parámetros de palabras clave, ye y f deben ser parámetros de palabras clave.
3. Nueva función de configuración PYTHONPYCACHEPREFIX (-X pycache_prefix) : configure el caché de código de bytes implícito para usar un árbol de sistema de archivos paralelo separado en lugar de usar el subdirectorio predeterminado __pycache__ en cada directorio de origen.
4. La versión de depuración y la versión de lanzamiento comparten ABI.
5. Nuevo soporte para f string = specifier, usado para expresiones de autograbación y depuración
La cadena f es un literal de cadena formateado, que se introdujo en Python 3.6 y se ha vuelto muy popular.
Esta vez, el soporte para el especificador = se agrega en la v3.8.
>>> user = 'eric_idle'
>>> member_since = date(1975, 7, 31)
>>> f'{user=} {member_since=}'
"user='eric_idle' member_since=datetime.date(1975, 7, 31)"
>>> delta = date.today() - member_since
>>> f'{user=!s} {delta.days=:,d}'
'user=eric_idle delta.days=16,075'
6. PEP 578: Ganchos de auditoría de tiempo de ejecución de Python / Ganchos de auditoría de tiempo de ejecución
PEP agrega un gancho de auditoría y un gancho de apertura de verificación. Ambas versiones están disponibles en Python y código nativo, lo que permite que las aplicaciones y los marcos escritos en código Python puro aprovechen las notificaciones adicionales, al tiempo que permiten que el personal integrado o los administradores de sistemas habiliten siempre la auditoría. Implemente la compilación de Python en.
7 、 PEP 587: Configuración de inicialización de Python
PEP 587 agrega una nueva API C para configurar la inicialización de Python, proporcionando un mejor control sobre toda la configuración y mejores informes de errores.
Adicionalmente,
continuar finalmente puede aparecer legalmente finalmente: en el bloque;
En Windows, el bucle de eventos asyncio predeterminado se cambia a ProactorEventLoop
En macOS, el método de inicio de generación se agrega al multiprocesamiento de forma predeterminada
El multiprocesamiento ahora puede usar segmentos de memoria compartida para evitar la sobrecarga entre procesos;
typed_ast se ha vuelto a fusionar en CPython;
LOAD_GLOBAL ahora es un 40% más rápido;
Pickle ahora usa el protocolo 4 por defecto, lo que mejora el rendimiento;
Para conocer otras características e interpretación, consulte la introducción oficial:
https://docs.python.org/3/whatsnew/3.8.html
Además, la próxima versión de Python 3.9 ya está en desarrollo.
Lectura recomendada
(Haga clic en el título para saltar y leer)
¿Crees que este artículo te es útil? Comparte con más personas
Preste atención al "Desarrollador de Python" destacado para mejorar las habilidades de Python
Buen articulo, estoy leyendo ❤️