Effective Python 讀書筆記: 第13條: 合理利用try/except/else/finally結構中的每個代碼塊

# -*- encoding: utf-8 -*-

import json
import os

'''
第13條: 合理利用try/except/else/finally結構中的每個代碼塊

關鍵:
1 finally塊
特點: finally塊中的代碼一定執行
應用場景: 關閉文件

2 else塊
特點: 如果try塊執行正常,就執行else塊

3 總結
finally塊必須執行
else在try塊正常執行後執行

參考:
Effectiv Python 編寫高質量Python代碼的59個有效方法
'''

def useFinally(fileName):
    if not os.path.exists(fileName):
        with open(fileName, "w") as f:
            f.write("hello world")
    try:
        fr = open(fileName)
    finally:
        fr.close()


def useElse(data, key):
    try:
        map = json.loads(data)
    except Exception:
        print e
    else:
        return map[key]


def process():
    fileName = "/tmp/a.txt"
    useFinally(fileName)
    data = {'grade': '329'}
    data = json.dumps(data)
    result = useElse(data, 'grade')
    print result


if __name__ == "__main__":
    process() 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章