声明:参考B站视频,自学成长记录
https://www.bilibili.com/video/BV1qC4y1s71m?p=243
# 1. 函数可以被引用
def func(x, y):
return x + y
add = func # 不要加括号, 加括号表示执行函数
print(add(1, 2)) # 3
# 2. 函数可以作为容器类型的元素
func_dict = {'add': add, 'max': max}
print(func_dict) # {'add': <function func at 0x0000015DC7F83E18>, 'max': <built-in function max>}
print(func_dict['max'](func_dict['add'](1, 2), 5)) # 5
# 3. 函数可以作为参数传入另外一个函数
def foo(x, y, add):
return add(x, y)
print(foo(3, 5, add)) # 8
# 4. 函数的返回值可以是另外一个函数
def bar(): # 1. 定义函数
return add # 2. 返回 add()函数的内存地址
func = bar() # 3. 将bar函数的执行结果(add的内存地址) 赋值给func
print(func(1, 2)) # 4. 运行func实际上就是运行add函数
# 5. 函数可以作为容器类型的元素的练习
def func1():
print('注册')
def func2():
print('登陆')
# 修改1:继续增加函数功能
def func_n():
print('一直到n个功能')
func_dict = {
'1': ['注册', func1],
'2': ['登陆', func2],
'n': ['第n个功能', func_n] # 修改2:添加n个字典与功能映射
}
# 3: 下面的无需修改任务代码
while True:
for k in func_dict:
print(k, func_dict[k][0])
bns_num = input('请输入业务编号:').strip()
if not bns_num.isdigit:
print('必须输入编码,憨憨')
continue
if bns_num in func_dict:
func_dict[bns_num][1]()
else:
print('业务未开放')