macによるpython3入門-その6-〜関数〜

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

プログラミングに関する原則の中で、DRY原則というのがあります。 DRYはDon’t Repeat Your Selfの略で、コードの重複はできる限り避けるべきです。

DRY原則に従う理由は、そもそも、書いたことがあるコードを再度記載するのは無駄な作業ですし、なによりコードが重複していると、コードが不必要に長くなり、プログラムの メンテナンス性・可読性が低くなるからです。

ですが、はじめからコードの再利用を念頭においてプログラミングをはじめてしまうと ロジックの抽象化が必要になりますので、普通にコードを書いているよりも時間がかかります。 一度しか使用しないロジックであれば、時間をかけてロジックを抽象化し、再利用を考えるのは基本的に無駄があります。

そこで、コードの再利用を考える基準として、マーチンファウラーが「リファクタリング -プログラムの体質改善テクニック-」で提唱している「Rule of three(3度目の法則)」に従うのが良いと思います。 重複した処理が3回出てきたら、コードの再利用を検討するのが良いでしょう。

コードを再利用するときの方法として、「関数」があります。 今回はPythonにおける「関数」について書きたいと思います。

関数の定義

さっそく「関数」定義してきましょう。 定義するにはdefを使います。 defはdefinition(定義)のことです。

def add(x,y):
    return x+y

add(2,5)
#=>7

書き方は、defの後ろに関数名をつけて、丸括弧の中に関数に対する入力引数を記載し、最後に「:」を書きます。 その次の行に、前回の記事のif文のときと同様、インデントして関数の処理を書いていきます。

上記の例では、入力引数xとyを受け取り、xとyを足したものを呼び出し元に返しています。

デフォルトの引数値の指定

関数の引数にはデフォルト値を設定することができます。

def echo(x="hello",y="world"):
    return x+y

echo("goodbye")
#=>"goodbyeworld"

引数yを指定せずに関数echoを呼び出すと、引数yに指定したデフォルト値である「world」が使用される。

キーワード引数

関数に対応する引数をkey=valueという形式の「キーワード引数」を使って呼び出すこともできます。

def echo(x="hello",y="world"):
    return x+y

echo(y="python",x="goodbye")
#=>goodbyepython

キーワード引数を使えば、関数に対応する引数の位置を覚えておかなくても良いので便利です。

可変個の引数

関数に対する引数として「*」を使用すると、可変個の引数を関数に渡すことができます。 引数はタプルに格納されます。

def print_args(*args):
    print(args)

print_args(1,2,3,4,5)
#=>(1,2,3,4,5)

今回は以上です。

参考書籍

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメント

  1. 泣き虫 より:

    もう更新しないんですか?
    もっと配信してほしいです!

    1. STM より:

      コメントありがとうございます!
      仕事が忙しくなかなか更新できずにいました。。
      2018年は頑張って記事更新したいと思いますので、よろしくお願いします。

コメントを残す

*

CAPTCHA