Pythonの学習関数オブジェクト、およびネストされた機能のジョブ閉鎖機能

図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())

おすすめ

転載: www.cnblogs.com/leilijian/p/12533242.html