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

 

こんにちは。のっくん(@yamagablog)です。

 

この記事では初心に戻りPythonの基礎を学びたいと思います。

 

関数メソッドの違いって何だっけ?」

キーワード引数可変長引数って何だっけ?」

format()メソッドってどうやって使うんだっけ?」

 

普段使ってるけど意外と忘れがちなこれらの機能をご紹介します。

 

[toc]

 

関数とメソッドの違い

 

この二つの言葉はよく混同して使われていますが、違います。

 

int関数を使って、引数である文字列’100’を、整数の100に変換しています。100は関数の返り値と呼ばれます。

 

# 関数
num = int('100')

 

print()も関数です。

 

一方、メソッドでは「値.メソッド名()」という書き方をします。例では、リストに値を追加したり、削除したりしています。

 

# メソッド
word_list = ['A','B','C']
word_list.append('D')
word_list.remove('A')
# [B,C,D]と出力される
print(word_list)

 

メソッドの引数は1つだけでなく以下のように複数とることも可能です。

 

#引数が複数あるメソッド
text = 'Hello_Python!'
text.replace('Python','Django')

 

可変長引数、キーワード引数

 

可変長引数というのは、引数の数が固定ではなく任意の数を指定できる引数です。例えばprint()関数です。

 

#可変長引数(引数を0個以上を指定できる)
print('A','B','C')

 

キーワード引数は、関数を呼ぶときに「名前=値」の形式で使います。

 

print()関数では区切り文字を指定するときなどに使われます。「sep=値」で指定します。

 

#キーワード引数
print('私は', '43才', 'です', sep='===')

 

実行すると以下のように出力されます。

 

私は===43才===です

 

formatメソッドの使い方

 

formatを使わずに、普通に変数を表示させようとすると以下のようになります。

 

name = "Kento Okubo"
age = 43
print('名前は',name,'です.年齢は',age,'才です.')

 

実行すると、

 

名前は Kento Okubo です.年齢は 43 才です.

 

このように、変数の前後で半角スペースが空いてしまいます。

 

formatを使うと、テンプレートを使って任意の変数を表示させることができます。

 

以下のようにprint関数と組み合わせて使ってみます。

 

#formatメソッド
name = "Kento Okubo"
age = 43
print('名前は{}です.年齢は{}才です.'.format(name,age))

 

出力は以下の通り。

 

名前はKento Okuboです.年齢は43才です.

 

変数で前後で半角スペースが無くなりましたね。

 

formatを使うと出力が変わるだけでなく、プログラムが読みやすくなるので積極的に使っていきましょう。

 

今日のまとめ

学んだこと
・Pythonでは関数とメソッドは違うもの
・キーワード引数を使うと、関数の出力を変えることができる
・formatを使うと、文字列の意味が分かりやすくなる

 

参考

 

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog