一、函数对象
简单来说,函数对象其实就是函数名,函数名具体有4中用法
注意:函数名后面跟括号,表示函数被调用
用法一
函数名可以当成变量赋值
def index(): print('from index') a = index # 把函数名index赋值给a a() # a +()代表函数自定义函数已被调用 print(a) # 函数名就是内存地址
用法二
函数名可以当成函数的参数
def index(): print('from index') def func(a): a() print('from func') # 把函数名index作为函数func的参数 func(index)
用法三
函数名也可以当成函数的返回值
def index(): print('from index') def func(): print('from func') return index # 函数名index作为函数func的返回值 res = func() res()
用法四
函数名也可以当成容器(可以存放多个元素)类型的元素
def index(): print('from index') l = [1, 2, 3, index] # 函数名index当成列表l的一个元素 print(l)
二、函数的嵌套
1、函数的嵌套调用
所谓的函数乔涛调用,简单来说就是函数里面调用其他函数
应用案例1:
# 1.比较两个数的大小 def my_max(a, b): if a > b: return a return b # my_max(1, 2)
应用案例2:
# 2. 比较4个数的大小 def many_max(a, b, c, d): # 先两两比较,a,b res = my_max(a, b) res1 = my_max(res, c) res2 = my_max(res1, d) return res2 print(many_max(1,2,3,4))
2、函数的嵌套定义
函数的嵌套定义是指在函数里面定义其他函数
目的在于把复杂的功能隐藏起来,方便操作
1 def all_func(type): 2 def register(): 3 print('注册') 4 5 def login(): 6 print('登录') 7 8 def transfer(): 9 print('转账') 10 11 def withdraw(): 12 print('提现') 13 14 if type == 1: 15 register() 16 elif type == 2: 17 login() 18 elif type == 3: 19 transfer() 20 elif type == 4: 21 withdraw() 22 else: 23 print('好好输入') 24 25 26 all_func(1) 27 all_func(2)函数的嵌套定义