Operador de morsa! Resumen de las nuevas funciones de Python 3.8

(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 640? Wx_fmt = png

640? Wx_fmt = png

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.

640? Wx_fmt = png

640? Wx_fmt = png

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

640? Wx_fmt = png

Buen articulo, estoy leyendo ❤️

Supongo que te gusta

Origin blog.csdn.net/iodjSVf8U1J7KYc/article/details/102597872
Recomendado
Clasificación