# -*- encoding: utf-8 -*-
from datetime import datetime
import os
'''
第21條: 用只能以關鍵字形式指定的參數來確保代碼明晰
關鍵:
1 關於位置參數
參數列表中的*號,表示位置參數結束了,之後參數都值能以關鍵字形式指定
2 *參數
含義: 接收數量可變的位置參數
3 **參數
含義: 接收任意數量的關鍵字參數
參考:
Effectiv Python 編寫高質量Python代碼的59個有效方法
'''
def safeDivision(
number, divisor,
ignoreOverflow=False,
ignoreZeroDivision=False):
try:
return number / divisor
except OverflowError:
if ignoreOverflow:
return 0
raise
except ZeroDivisionError:
if ignoreZeroDivision:
return float('inf')
raise
def process():
result = safeDivision(
1, 0, ignoreOverflow=True, ignoreZeroDivision=True)
print result
if __name__ == "__main__":
process()