図1は、関数オブジェクトコードは、多分岐Lianshu場合に最適化されています
def log_in():
print('登录功能')
def register():
print('注册功能')
def check_balance():
print('查询余额')
def withdraw():
print('提现')
def transfer():
print('转账')
cmd_dic = {
'0':('退出',exit),
'1':('注册',register),
'2':('登录',log_in),
'3':('查询余额',check_balance),
'4':('提现',withdraw),
'5':('转账',transfer)
}
while True:
for k,v in cmd_dic.items():
print('{:>4} {}'.format(k,v[0]))
cmd = input('请输入命令编号:').strip()
if not cmd.isdigit():
print('必须输入数字')
elif cmd in cmd_dic:
cmd_dic.get(cmd)[1]()
else:
print('你输入的命令编号不存在')
Aに基づいて元の要件に加えた後、図2に示すように、書き込みカウンタ関数が呼び出され
ヒント:
I:使用に知識の必要性:ローカル以外の閉鎖機能+
II:次のようにコア機能は次のとおりです。
DEFカウンタ():
。X + = 1
戻りX
請求最終効果似
。プリント(Couter())#1
印刷(Couter())#2
。印刷(Couter())#3
。印刷(Couter())#4
を印刷(Couter( ))#5
def outter():
x=0
def counter():
nonlocal x
x = x + 1
return x
return counter
counter = outter()
print(counter())
print(counter())
print(counter())
print(counter())
print(counter())