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の組み込み関数一覧