理解 Python 中“一等函数”的概念及其核心特征
掌握将函数赋值给变量的方法
学会将函数作为参数传递和从函数中返回
了解如何将函数存储在列表、字典等数据结构中
能够利用一等函数特性编写更灵活、可复用的代码
在 Python 中,函数是一等对象(first-class objects)。这意味着函数可以像整数、字符串或其他变量一样被操作。具体来说,你可以:
将函数赋值给变量
将函数作为参数传递给其他函数
从函数中返回另一个函数
将函数存储在列表、字典等数据结构中
这种特性使得 Python 支持高阶函数和函数式编程风格,从而提升代码的模块化程度与复用性。
你可以把一个函数名赋给另一个变量,然后通过该变量调用原函数。
def greet(name):
return f"你好,{name}!"
# 将函数赋值给变量
say_hello = greet
# 通过变量调用函数
print(say_hello("小明"))输出:
你好,小明!说明:
greet函数被赋给了变量say_hello,之后say_hello就可以像函数一样被调用。这体现了函数在 Python 中如同普通对象一样可被引用。
函数可以作为参数传入另一个函数,这是实现回调机制和高阶函数的基础。
def greet(name):
return f"你好,{name}!"
def execute(func, name):
return func(name)
# 将 greet 函数作为参数传入 execute
result = execute(greet, "小红")
print(result)输出:
你好,小红!说明:
execute函数接收一个函数func和一个名字name,然后调用func(name)。这种模式广泛用于如map()、filter()等内置函数中。
一个函数可以定义并返回另一个函数,常用于创建函数工厂或实现闭包。
def create_message(template):
def inner():
return f"提示信息:{template}"
return inner
# 获取内部函数
message_func = create_message("系统已启动")
print(message_func())输出:
提示信息:系统已启动说明:
create_message返回了内部定义的inner函数。即使create_message执行完毕,inner仍能访问其作用域中的template变量,这就是闭包的体现。
函数可以像普通值一样存入列表、字典等容器中,便于动态调用。
def add(x, y):
return x + y
def subtract(x, y):
return x - y
# 将函数存入字典
operations = {
"加法": add,
"减法": subtract
}
# 动态调用
print(operations["加法"](10, 5)) # 输出:15
print(operations["减法"](10, 5)) # 输出:5说明:通过字典键选择要执行的操作,使程序更具扩展性和可配置性。例如,可用于实现命令分发器或插件系统。
Python 中的函数是一等对象,具备与其他数据类型相同的权利。
支持四大核心操作:赋值、传参、返回、存储。
这些特性是实现高阶函数、装饰器、闭包和函数式编程的基础。
合理使用一等函数可显著提升代码的灵活性与可维护性。
为什么说“函数是一等对象”对编写模块化代码有帮助?请结合实际场景举例说明。
如果将多个函数存入列表,如何遍历并依次调用它们?请写出示例代码。
在 Web 框架(如 Flask)中,路由装饰器是如何利用“函数作为参数”这一特性的?