函数对象
函数对象
函数是第一类对象
1、函数名是可以被引用的
def index():
print("hello world")
a=index
a()
2、函数名可以当做参数传递
def index(a,bar):
print(a)
bar()
def fun():
print("hello world")
index(1,fun)
# >>>
# 1
# hello world
3、函数名可以当做返回值使用
传参的时候没有特殊需求,一定不要加括号,加括号就会到那一步立马执行
def index():
print("hello world")
def fun(a):
return a
a = fun(index)
a()
# >>> hello world
4、函数名可以被当做容器类型的元素
def index():
print("hello world")
l1 = [1,2,index,index()] # 当有括号的时候执行到l1时就会执行一次函数
f=l1[2]
print(f) # 打印函数名得到函数内存地址
f()
# >>>
# hello world
# <function index at 0x000002914A70C3A8>
# hello world
# 简单购物车流程
def register():
print("register")
def login():
print("login")
def shooping():
print("shooping")
def pay():
print("pay")
l1 = {'1':register,'2':login,'3':shooping,'4':pay}
def gw():
while True:
print(
"""
1、注册
2、登录
3、购物
4、结账
5、退出
"""
)
f = input("请输入对应的编号:").strip()
if f == "5":
break
if f not in l1:
continue
else:
l1[f]()
gw()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!