Atom's tech blog

Pythonを勉強しよう! 関数とメソッドの違い

f:id:iAtom:20201110161620j:plain

Python初心者の備忘録.....

今回は関数(function)とメソッド(method)の違いについてです。

プログラミングする上で絶対関数とメソッドを作成します。ここでは関数、メソッドの作成と説明と違いについて説明します。

関数

関数 」は簡単にいうと「 値を渡すとその値で計算結果を返すもの 」、「 値は渡さないが処理だけを行うもの 」、ものによっては「 値を渡すとその値で処理し、結果を返さないもの 」などのような感じしょうか。

「 関数 」は、基本的に機能毎に分けて作成します。作り次第ですが、例えば、ファイルに保存する、統計計算だけするなど、機能毎に階層化して作成することで役割分担を明確して作成します。

「 関数 」を作成するときは、「 def 」 というキーワードに続けて関数名を記述して、そのあとに「 () 」(カッコ)をつけます。

最後に「 : 」(コロン)をつけ、改行して「 インデント 」を入れて処理コードを書きいれると、関数として扱われます。

関数の基本形

入力パラメータが無い場合
def  " 関数名 " () :
     "関数内を実行する処理"

・サンプルコード

def  funcNotPara() :
     print(" Not Parameter")

funcNotPara()

# 出力結果
# Not Parameter
入力パラメータが有る場合
def  " 関数名 " ( "パラメータ ") :
     "関数内を実行する処理"

・サンプルコード

def  funcPara(para1) :
     print(para1)

funcPara("paraData")

# 出力結果
# paraData
結果を返す場合
def  " 関数名 " ( "パラメータ ") :
     "関数内を実行する処理"
  return "処理結果"

・サンプルコード

def  funcPara(para1) :
     retValue = para1 + " / returnValue"
     return(retValue)

ret = funcPara( "paraData")
print(ret)

# 出力結果
# paraData / returnValue

メソッド

関数と同じ構造で記述のルールも同等です。ここで疑問になってくるのが、記述ルールが同じなのに言い方が変わるのか....。それは次章で説明を。

関数とメソッドの違い

簡単にいうと「 モジュール内にdefで作成したものが関数 」、「 クラス内にdefで作成したものがメソッド 」になります。

正確にはクラスがインスタンス化されてから「 メソッド 」になるようです。

# これが関数(モジュール内に作成されたもの)
def  func1(para1) :
     print(para1)

class funcClass():
     # これがメソッド(クラス内に作成されたもの)
     def func2(para2):
        print(para2)

# 関数を起動
func1("func1Exec")
# メソッドを起動
funcClass.func2("func2Exec")

# 出力結果
# func1Exec
# func2Exec