Python的高阶用法
时间: 2023-11-05 16:28:39 浏览: 159
Python的高阶函数用法实例分析
Python中高阶用法指的是函数式编程中的一些特性,包括函数作为参数、函数作为返回值、匿名函数、闭包等等。以下是一些常见的Python高阶用法:
1. 函数作为参数
函数作为参数是函数式编程中的一种常见用法。例如,可以使用`sorted()`函数对一个列表进行排序,其中`key`参数可以传递一个函数,用于指定排序规则。例如:
```
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_list = sorted(my_list, key=lambda x: -x)
print(sorted_list) # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
```
上述代码中,`key`参数传递了一个匿名函数,用于指定按照相反的顺序进行排序。
2. 函数作为返回值
函数作为返回值可以用于实现一些高级的编程技巧。例如,可以定义一个函数生成器,用于生成一系列的函数,每个函数实现不同的功能。例如:
```
def make_adder(n):
def adder(x):
return x + n
return adder
add5 = make_adder(5)
add10 = make_adder(10)
print(add5(3)) # 8
print(add10(3)) # 13
```
上述代码中,`make_adder`函数返回一个内部定义的`adder`函数,用于生成加上不同数字的函数。
3. 匿名函数
匿名函数也称为lambda函数,可以用于简化代码。例如,可以使用lambda函数实现上述排序的功能:
```
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_list = sorted(my_list, key=lambda x: -x)
print(sorted_list) # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
```
上述代码中,`lambda`关键字用于创建一个匿名函数,用于指定按照相反的顺序进行排序。
4. 闭包
闭包指的是一个函数返回了一个内部定义的函数,并且该内部函数可以访问外部函数的变量。例如:
```
def make_counter():
count = 0
def counter():
nonlocal count
count += 1
return count
return counter
counter = make_counter()
print(counter()) # 1
print(counter()) # 2
print(counter()) # 3
```
上述代码中,`make_counter`函数返回一个内部定义的`counter`函数,用于生成自增的数字。`counter`函数可以访问外部函数的`count`变量,并且在每次调用时将其加1。
以上是一些常见的Python高阶用法,可以帮助提高代码的可读性和重用性。
阅读全文