Once conceptos básicos de funciones de orden superior de Python: funciones de orden superior y parámetros reales sin parámetros

1. Una función es una variable
. La definición de una función en Python significa una variable cuyo tipo es función, y el nombre de la función es el nombre de la
variable. Cualquier cosa que una variable pueda hacer, una función puede hacer

Variables como parámetros de la secuencia Variables como parámetros
de la función
Variables como valor de retorno de la
función Nota: El cuerpo de la función no se ejecutará cuando esté definido

list1 = []
for x in range(0, 5):
    list1.append(lambda y: y * x)

print(list1[2](3))
print(list1[4](3))

x = 0 [lambda y:yx]
x = 1 [lambda y:y
x],[lambda y:yx]
x = 2 [lambda y:y
x],[lambda y:yx],[lambda y:yx]
x = 3 [lambda y:yx],[lambda y:yx],[lambda y:yx],[lambda y:yx]
x = 4 [lambda y:yx],[lambda y:yx],[lambda y:yx],[lambda y:yx],[lambda y:yx]
执行第二个[lambda y:y
x],y为3,x为4 值为12
执行第四个[lambda y:y*x],y为3,x为4 值为12

1. Función de orden superior de parámetro real La función de la que el
parámetro es una función es la función de orden superior de parámetro real
2. El uso de las funciones de orden superior de parámetro real común del sistema
max, min, sorted, map, reduce
1) max \ min
max (secuencia) -secuencia de comparación El tamaño del elemento se utiliza para obtener el valor máximo Elemento
max (secuencia, tecla = función) -la función determina el objeto de comparación cuando busca el valor máximo Requisito para la
tecla de parámetro: a. Es una función b. Esta función tiene un solo parámetro (parámetro en la secuencia)
c. La función tiene un valor de retorno (objeto de comparación)

students = [
    {'name': '小明', 'age': 23, 'score': 90},
    {'name': '张三', 'age': 30, 'score': 78},
    {'name': '小红', 'age': 18, 'score': 82},
    {'name': 'Tom', 'age': 26, 'score': 99}
]
# 求所有学生中成绩最好发学生
print(max(students, key=lambda item: item['score']))


def f2(item):
    print(f'item:{item}')
    return item['score']


print(max(students, key=f2))

2) ordenados
ordenados (secuencia) - comparar el tamaño de los elementos en la secuencia, ordenar los elementos en la secuencia de pequeños a grandes
ordenados (secuencia, tecla = función) - comparar el tamaño del objeto de comparación cuando la función determina el orden

students = [
    {'name': '小明', 'age': 23, 'score': 90},
    {'name': '张三', 'age': 30, 'score': 78},
    {'name': '小红', 'age': 18, 'score': 82},
    {'name': 'Tom', 'age': 26, 'score': 99}
]
print(sorted(students, key=lambda item: item['age']))


def a(x):
    return x['age']


print(sorted(students, key=a))

3) mapa
mapa (función, secuencia): transforma la secuencia de la forma especificada, el valor de retorno es un objeto mapa (el objeto mapa es una secuencia)
función: 1. Hay un parámetro (este parámetro apunta al elemento en la secuencia original) 2. Necesita un valor de retorno (elemento en la nueva secuencia)

nums = [19, 78, 76, 55, 30, 12]
result = map(lambda item: item % 10, nums)
print(list(result))

# 练习:获取班级所有学生的总成绩
c = [90, 89, 88, 99, 27, 76, 56]
e = [98, 78, 66, 82, 90, 12, 78]
m = [23, 98, 100, 72, 69, 27, 96]
result = map(lambda item1, item2, item3: item1 + item2 + item3, c, e, m)
print(list(result))

4) Reduce realiza una operación común en todos los datos
de las funciones de importación reduce. Para agregar el requisito de llamar a la
función reduce (función, secuencia, valor inicial)
: a. Se requieren dos parámetros: el
primer parámetro, el primer punto al inicial Valor; a partir de la segunda vez, apunta al resultado de la operación anterior. El
segundo parámetro-apunta a cada elemento en la secuencia.
B. Se requiere un valor de retorno (para determinar la regla de operación)

# 将数字序列中的元素全部拼接在一起
# [10, 89, 78, 20] -> 10897820
nums = [10, 89, 78, 20]
result = reduce(lambda s,item:s+str(item),nums,'')
print(result)

1. ¿Qué es un decorador?
El rol de un decorador: se usa para agregar funcionalidad a una función.
Esencia: es una función (parámetro real función de orden superior + valor de retorno función de orden superior + sintaxis de azúcar)
Uso (rutina):
def nombre de función 1 (parámetro 1 ):
def nombre de función 2 (* args, ** kwarg):
el código de la nueva función
Llamar al código de función original: parámetro 1 (* args, ** kwarg)
devuelve el valor de retorno de la función original
return nombre de función 2
descripción:
nombre de función 1-El nombre del decorador, que se nombra de acuerdo con la función recién agregada.
Parámetro 1: -La función que debe agregarse (la función original), generalmente llamada f, fn
nombre de la función 2-El nombre de la función de la nueva función después de agregar la función, nuw_f, new_fn

Supongo que te gusta

Origin blog.csdn.net/SaharaLater/article/details/111564657
Recomendado
Clasificación