見出し画像

【Python】 関数を切り分けて変数に入れる。チーム開発の基本とは

関数を分けることはいいことだ

関数にして分けていくことで、自身が関数の処理内容を把握でき、処理の切り分けができます。また、複数人・チーム開発の際に、何をどこまで書いているかが伝わりやすくなります。
関数名をつけて「動詞」として一つのくくりを登録することによりこの処理は何?とわかりやすくなるので、メリットも大きい。3か月後の自身のソースを見直したときに、判断がつきやすくなる。是非関数の切り分けを進めていきましょう。
なお、関数名は、わかりやすい名前にしておくのがいいでしょう。
普段じぶんが行動するときの行動を「動詞」に変換し、それをそのまま名前にする練習をしておけばすっと出るはず
誰が見ても分かりやすく長すぎないものにしましょう。
固有の名詞はさけて、普遍的なものにしましょう。

処理内容が少なければ一つの関数で構いませんが、「追加機能」や、「分岐」で違う道筋の処理が必要になると、分けたほうがのちのちの作業で楽になります。

次のステップから、実際のコードで説明します。

sample.py

def sample():

    items =["aaa","bbb","ccc"]
    print(items)
#>>["aaa","bbb","ccc"]

itemsの中に文字列のリストを作成し、プリント関数でitemsの内容を表示するというコードです。スタンダードでよく見かけるコードスタイルです。

sample2.py

def add_items():

    items =["aaa","bbb","ccc"] 
    return items


def sample():

    items = add_items()
    print(items)

sample() #関数実行 

#>>["aaa","bbb","ccc"]

add_items()関数を作成し、items の中身を関数化しました。

sample関数を実行するとitems変数の中にadd_items関数が代入され、実行されます。itemsの中には["aaa","bbb","ccc"]が追加されています。

処理を分けておくことで、関数がそれぞれどの役割を果たすのかがわかり、コードの可読性が上がります。

return文

return itemsが戻り値で、計算結果["aaa","bbb","ccc"]を返す意味があります。他に「この行ブロックで終わり」という明示的な意味があります。
returnはこの戻りの値を必ず通ります

sample2.py

def add_to_item():

    items=["aaa","bbb","ccc"] 
    return items


def del_item(items): #追加 

    del items[1] #追加 



def main():

    items =add_to_item()
    print(items)

    del_item(items)#追加
    print(items)#追加

main() #関数実行 

#>>["aaa","bbb","ccc"]
#>>["aaa,"ccc"]

del_item関数を作りました。リスト内の[1](2番目)を削除するというものです。#追加 の行が追加された行になります。

関数実行の引数に変数を入れる


main関数に組み込んだ時に、del_item(items)引数にitems変数を入れています。

del_item(items)


これはadd_items関数で使われた変数itemsがreturn文の戻り値itemsに格納された["aaa","bbb","ccc"]が入っています。
returnで明示しないと、関数は結果の値を持ちません。

この戻り値で受けた値をもとにdel_item関数を実行し、["aaa","ccc"]の結果となります。
関数の変数の共通化をするときに「returnの戻り値」を組み入れておけば、あとで新しい関数処理を追加するときに、切り分けた処理の値をバケツリレーのように引き継ぐことができます。

まとめ

  • 関数分けをすると、何をしているかわかりやすくなる。

  • rerturn文で処理結果を関数に返すことができる。

  • 結果を他の関数で使いまわせる。


宣伝


プログラミング開発を承ってます!したいことを形にいたします。ぜひのぞいてみてください。

https://fdg-consulting.com/

ご覧いただきありがとうございました。 サポートしていただいたお金は開発費にかけさせていただきます。