⼀、函数的⽤法1. 函数可以做赋值
def func():
print('from func')f=func()
2.函数可以当做参数被调⽤3.可以放⼊列表等当中
1 l=[func,] #作为元素时,函数名不加括号2 l[0]() #调⽤
View Code4.案例1:
1)⼩⽩写的程序
1 def login():
2 print('登录功能') 3 def transfer():
4 print('转账功能') 5 def select():
6 print('查询余额') 7 while True: 8 print('''' 9 0 退出10 1 登录11 2 转账
12 3 查询余额13 ''')
14 chice=input('请输⼊命令编号:').strip()15 if not chice.isdigit():16 continue17 if chice=='0':18 break
19 elif chice=='1':20 login()
21 elif chice=='2':22 transfer()23 elif chice == '3':24 select()25 else:
26 print('输⼊指令不存在')
View Code
2)我进⼀步优化(程序写死后添加功能不⽅便,⼀个功能写⼀个函数)
1 def login():
2 print('登录功能') 3 def transfer():
4 print('转账功能') 5 def select():
6 print('查询余额') 7 func_dict={ 8 '1':login, 9 '2':transfer,10 '3':select11 }
12 while True:13 print(''''14 0 退出15 1 登录16 2 转账
17 3 查询余额18 ''')
19 chice=input('请输⼊命令编号:').strip()20 # if not chice.isdigit():
21 # continue22 # if chice=='0':23 # break
24 # elif chice=='1':25 # login()
26 # elif chice=='2':27 # transfer()28 # elif chice == '3':29 # select()30 # else:
31 # print('输⼊指令不存在')32 if chice in func_dict.keys():33 func_dict[chice]()34 else:
35 print('输⼊指令不存在')
View Code 3)⾼⼿的优化
1 def login():
2 print('登录功能') 3 def transfer():
4 print('转账功能') 5 def select():
6 print('查询余额') 7 func_dict={
8 '0':['退出',None], 9 '1':['登录',login],10 '2':['转账',transfer],11 '3':['查询余额',select]12 }
13 while True:14 # print(''''15 # 0 退出16 # 1 登录17 # 2 转账18 # 3 查询余额19 # ''')
20 for k in func_dict: #解放以上print内容21 print(k,func_dict[k][0])
22 chice=input('请输⼊命令编号:').strip()23 # if not chice.isdigit():24 # continue25 if chice=='0':26 break
27 # elif chice=='1':28 # login()
29 # elif chice=='2':30 # transfer()31 # elif chice == '3':32 # select()33 # else:
34 # print('输⼊指令不存在')35 if chice in func_dict.keys():36 func_dict[chice][1]()37 else:
38 print('输⼊指令不存在')
View Code
5.函数的嵌套调⽤及定义
1 def bijiao():
2 # 对4个数字⽐较⼤⼩ 3 def max2(x,y): 4 if x>y: 5 return x 6 else:
7 return y
8 def max4(a,b,c,d): 9 res1=max2(a,b)10 res2=max2(res1,c)11 res3=max2(res2,d)12 return res3
View Code
优点:减少代码量,清晰明了
⼆、闭包函数
闭包函数=名称空间与作⽤域+函数嵌套+函数对象 (核⼼点:名字的查找关系是以函数定义阶段为准) 1.闭包的解释
‘闭’指的是该函数在函数内部;
“包”指的是该函数包含对外层函数作⽤域名字(外不函数的变量)的引⽤; 2.定义闭包函数
内部函数可以实现在外部调⽤。
1 def f1():2 x=222223 def f2():4 print(x)
5 return f2 View Code
#不管函数怎么调⽤,f2调⽤的永远是f1当中的变量,f2可以在任何地⽅调⽤
因篇幅问题不能全部显示,请点此查看更多更全内容