関数
pythonの関数ですね〜
重要だと思ったのは、Pythonは関数のオーバーロードができないこと
そのため、関数の定義側に、引数のデフォルト値を定義しておく ことで、引数の数が変化しても大丈夫。
あと、何故かデフォルト値を定義してしまったら、その後の引数定義もデフォルト値を定義しないといけない。
今回の例でいうと、percentをデフォルトで定義しているので、reductionに関しては絶対にデフォルト値を定義しないとエラー(Syntax Error)になる。
def calc_tax (price, percent=8, reduction=0): #calculate price with tax return price * (1+(percent - reduction)/100) total = calc_tax(1000) print (total) #1080 total = calc_tax(1000, 10) print (total) #1100 total = calc_tax(1000, 15, 3) print (total) #1120
ちなみに、呼び出し側で、引数名と値をセットで呼び出せば、順番は関係ないようにしてくれるみたい。
これをキーワード付き引数と言うらしい。
def calc_tax (price, percent=8, reduction=0): #calcualte price with tax return price * (1+(percent - reduction)/100) total = calc_tax(percent=10, reduction=1, price=1000) print (total) #1090