python学习记录--函数对象,嵌套,闭包函数
-
-
函数的嵌套
-
函数的嵌套定义
-
闭包函数
函数对象(函数名)
函数名的用法
1.函数名可以当成变量赋值
# def index():
# print('from index')
#
# a = index
# a() #函数名遇到括号就会调用
# print(a) # 函数名就是内存地址
2.函数名可以当成函数的参数
# def index():
# print('from index')
#
#
# def func(a):
# # a => index
# a()
# print('from func')
#
#
# func(index)
3.函数名也可以当成函数的返回值
# def index():
# print('from index')
#
#
# def func():
# print('from func')
# return index
#
# res = func()
# res()
4.函数名也可以当作容器,可以存放多个元素类型的元素
# def index():
# print('from index')
#
#
# l = [1, 2, 3, index]
# print(l)
小案例
#注册功能
1 def register(): 2 print('注册') 3 4 5 # 登录功能 6 def login(): 7 print('登录') 8 9 10 # 转账功能 11 def transfer(): 12 print('转账') 13 14 15 # 购物功能 16 def shopping(): 17 print('购物') 18 19 20 # 提现功能 21 def withdraw(): 22 print('提现') 23 24 25 func_dict = { 26 '1': register, 27 '2': login, 28 '3': transfer, 29 '4': shopping, 30 '5': withdraw 31 } 32 while True: 33 print(""" 34 1. 注册 35 2. 登录 36 3. 转账 37 4. 购物 38 5. 提现 39 """) 40 41 choice = input('请输入序号:>>>').strip() 42 if choice in func_dict: 43 func_name = func_dict[choice] # 得到的就是函数的内存地址,函数名 44 func_name() 45 else: 46 print('请好好输入') 47 48 # 一下方式太复杂了,优化一下 49 # if choice == '1': 50 # register() 51 # elif choice == '2': 52 # login() 53 # elif choice == '3': 54 # transfer() 55 # elif choice == '4': 56 # shopping() 57 # elif choice == '5': 58 # withdraw() 59 # else: 60 # print('请好好输入')
函数的嵌套调用
在函数中调用其他函数
嵌套的应用方法——比较四个数的大小
函数嵌套的定义
在函数中定义其他函数,把复杂的功能隐藏起来
只有同时满足上面两个条件,才能称为闭包函数
闭包函数的应用,目前我们了解的传参方式有一种(如图)
第二种传参方式:闭包函数