□この記事シリーズの説明
どんな分野でも使えるかどうかではなく知っているか知らないかで大きく差が発生してしまう要素があります。
この記事シリーズは知っているだけで得するPythonの知識を紹介していくものです。
□知っているべきことの概要
・同じ処理の記載をまとめる+命名することでなにをやっているかをわかる安くすることができるのが自作関数のメリット
・この概念を知っていることで他人の記事のコードを効率的に読むことができるようになる!
□第一回 自作関数について
Q そもそもなぜ自作関数というものを作るべきなのか
A.同じ処理を何度も書かなくてよくするため
※人によって異なる場合がございます。
例えば、パソコンにログインする処理をコードで記述することを考えてみてください。
その場合、以下のような作業が毎回発生すると思います。
・ロック解除
・ユーザ名入力
・パスワード入力
・ログインボタンのクリック
これらの処理が単発であるのならば問題ないのですが、パソコンにログインする処理を朝・昼・晩に実行する必要がある場合、関数化しない場合は以下のような記述になってしまいます。
朝に起動
・ロック解除
・ユーザ名入力
・パスワード入力
・ログインボタンのクリック
昼に起動
・ロック解除
・ユーザ名入力
・パスワード入力
・ログインボタンのクリック
夜に起動
・ロック解除
・ユーザ名入力
・パスワード入力
・ログインボタンのクリック
上記のように一連の流れを毎回書くことによって何をしているのか一見わかりづらくなります。
そこで自作関数を使うことによって以下のように記述をまとめることができます
処理名:ログイン処理
・ロック解除
・ユーザ名入力
・パスワード入力
・ログインボタンのクリック
朝に起動
・ログイン処理
昼に起動
・ログイン処理
夜に起動
・ログイン処理
上記の記述に変更することによって以下のメリットがあります。
・何をやっているかわかりやすい。
・もしも同じ処理がさらに必要になった場合、記述が簡単になる。
以上が自作関数のメリットについてです。
自作関数の作り方
さてここまで自作関数の作り方を説明してきました。
ここで重要になることが二つあります。
それは処理を共通するのが主目的であるということです。
この主目的を達成するに以下二つの要素が含まれている必要があります。
①共通処理でない要素は入っていない、あるいは変数で参照する必要がある。
上記の例に合わせると、朝はおはよう、昼はこんにちはみたいに変動する要素は共通化にむいていないという話です。
要するにコードで書くときはあいさつのような処理は変数で入れてねという話となります。
例)
import random
def Aisatsu(name):
print(f"こんにちは、{name}さん!")
# 使用例
Aisatsu("太郎") # → 例:「こんにちは、太郎さん!」
②共通関数は呼び出せる必要がある。
言い換えると、呼び出すことができるような場所に配置している必要があるということです。
これをするには、呼び出すための準備と呼び出すコードを理解している必要があります。
・共通関数化する処理は拡張子.pyに記述する必要がある。
common_functions.pyなど
・関数呼び出しはimportコマンドで可能
例)
共通関数をcommon_functions.pyに記述している場合の呼び出しコマンド
import common_functions
・呼び出した関数は「呼び出し名.関数名()」で使用することができる。
例)
common_functions.Aisatsu("太郎")