【Python】関数とメソッドの違いを実例でわかりやすく解説

python-関数とメソッドの違いは何? Python
記事内に広告が含まれていることがあります。

Pythonを使っていると、メソッドや関数(組み込み関数)という言葉を頻繁に目にします。

オブジェクトの後に「.」でつながり「( )」がつくものはメソッドだと思っていましたが、range()は関数と呼ばれるなど、気になったので、調べた結果をまとめています。

結果、メソッドと関数は明確に使い分けられていました。

Pythonの関数とメソッドの違い

メソッド

特定のクラスでしか使えない。

値の型を表す、list(配列)や、str(文字列)、int(整数)もそれぞれが一つのクラスとして定義されています。

例:replaceメソッド
list(配列)には使えないが、str(文字列)には使える。listにreplaceは使えない

list = ['AAA', 'BBB', 'CCC']
list.replace("A","B")

#出力
# AttributeError: 'list' object has no attribute 'replace'

strなら使える

list = ['AAA', 'BBB', 'CCC']
str(list).replace("A","B")

#出力
# "['BBB', 'BBB', 'CCC']"

関数

幅広いオブジェクトに使える(特定のクラスで縛られない)。

pythonにデフォルトで組み込まれている、組み込み関数が該当。

主要な組み込み関数

関数内容
type()型を返す
tuple()tuple型に変換する
str()文字列に変換する
set()set型に変換する
range()指定範囲に含まれる整数を返す
open()ファイルを開く
list()list型に変換する
len()要素の数を返す
int()整数を返す(小数点以下切り捨て)
format()書式を変更する

・組み込み関数の一覧はこちら

例:str関数tupleに使える

A = 1,2,3,4,5
type(A)  #出力:tuple

type(str(A))

#出力
# str

listに使える

B = [1,2,3,4,5]
type(B)  #出力:list

type(str(B))

#出力
# str

setに使える

C = {1,2,1,5,2,3,4,5}
type(C)  #出力:set

type(str(C))

#出力
# str

変数名の注意点

変数の名前に、組み込み関数で使われている名前を使うと、組み込み関数が使えなくなってしまいます。

なので、変数名に組み込み関数名は使ってはいけません。

(参考)Pythonの組み込み関数一覧

https://docs.python.org/ja/3/library/functions.html
タイトルとURLをコピーしました