' P '

whatever I will forget

Python 関数

関数

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