函数对象
函数对象
函数是第一类对象
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()