目录
一, 对函数的深层次认识
二, 函数对象的四大功能
1. 引用
2. 当作参数传给函数
3. 当作函数的返回值
4. 当作容器类型的元素
三, 函数对象的应用
一, 对函数的深层次认识
1.python 中一切皆对象, 函数是第一类对象
2. 由于函数也是对象, 所以函数可以被当作数据处理
- def f():
- pass
- # 函数名就可以看作是一种数据类型的变量
- print(f)
- print(id(f))
- print(type(f))
- '''
- 1657186954232
- function'>
- '''
- # 函数名加 () 就是返回值, 所有的属性都根据函数的返回值而定
- print(f())
- print(id(f()))
- print(type(f()))
- '''
- None
- 1408672976
- NoneType'>
- '''
函数对象可以看作就是函数名, 当调用它时, 必须在它后面加小括号
二, 函数对象的四大功能
1. 引用
类似于变量, 函数对象可以当作变量值的引用来处理
- def f():
- pass
- x = f
- print(x)
- #
2. 当作参数传给函数
既然函数对象类似于变量, 那么它也可以当作接收数据的变量名来进行传值
- def f():
- print('通过 x() 来实现 f 函数的调用')
- def f2(x):
- x()
- f2(f)
- # 通过 x() 来实现 f 函数的调用
3. 当作函数的返回值
和将函数对象作为参数传值一样, 函数对象可以作为函数的返回值
- def f(x):
- return x
- def f2():
- print('我是 f2')
- a = f(f2)
- a() # 我是 f2
4. 当作容器类型的元素
也可以将函数对象看作是一个值, 因此它可以作为一个元素存储在容器类型中
- def f():
- print('你好')
- lis = [f]
- lis[0]() # 你好
三, 函数对象的应用
- def pay():
- print('支付成功')
- def withdraw():
- print('提现成功')
- func_dic = {'0': par, '1': withdraw}
- while True:
- msg = """'1': 支付,
- '2': 提现,
- '3': 退出,
- """
- print(msg)
- choice = input('选择功能:').strip()
- if choice == '3':
- break
- elif choice in func_dic:
- func_dic[choice]()
来源: http://www.bubuko.com/infodetail-3077480.html