【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/
ご覧いただきありがとうございました。 サポートしていただいたお金は開発費にかけさせていただきます。