Python · Comprensión de [lambda x: x*i for i in range(4)]

tema

lst = [lambda x: x*i for i in range(4)]
res = [m(2) for m in lst]
print res

Esta pregunta involucra el conocimiento de Python sobre cierres y enlace retrasado (alcance de Python).

En la programación central de Python, los cierres se definen de la siguiente manera:

Si dentro de una función interna hay una referencia a una variable en el ámbito externo (pero no en el ámbito global), entonces la función interna se considera un cierre.

Se puede resumir en tres puntos:

1, es una función en línea

2. Referencia a variables de funciones externas

3. Las funciones externas devuelven funciones incrustadas

Ejemplo de cierre simple:

def counter(start_at=0):
    count = [start_at]
    def incr():
        count[0] += 1
        return count[0]
    return incr

La pregunta anterior se puede escribir como:

def func():
    fun_list = []
    for 

Supongo que te gusta

Origin blog.csdn.net/qq_37865996/article/details/124311407
Recomendado
Clasificación