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('请好好输入')

 函数的嵌套调用

    在函数中调用其他函数

   嵌套的应用方法——比较四个数的大小

 

 函数嵌套的定义

      在函数中定义其他函数,把复杂的功能隐藏起来

      

 闭包函数

闭:定义在函数内部的函数

包:内部函数必须使用外部函数的数据

只有同时满足上面两个条件,才能称为闭包函数

闭包函数的应用,目前我们了解的传参方式有一种(如图)

 

 第二种传参方式:闭包函数

 

posted @ 2022-01-07 19:19  mwz21  阅读(36)  评论(0)    收藏  举报