関数とは
C言語などと同じように何らかの処理をするのが関数とメソッドです。
メソッド
obj.method
関数
func()
メソッドはオブジェクトにをどうする、という処理です。
関数は独立した処理です。
関数について説明します。メソッドについても同様なので関数についてのみ説明します。
関数は引数、戻りを持つ場合と持たない場合があります。
# -*- coding: utf-8 -*-
#引数なし戻り値なし
def hello_1():
print("Hello world.")
#引数あり戻り値なし
def hello_2(strGreetig):
print(strGreetig + 'Trump.')
#引数なし戻り値なし
def hello_3():
return 'Japan.'
#引数あり戻り値あり
def hello_4(strGreetig):
print(strGreetig)
return True
def main():
hello_1()
hello_2('Good mornig ')
print('Hello ' +hello_3() )
ret = hello_4('Nice to meet you.')
print(ret)
if __name__ == "__main__":
main()
特に説明する必要がない簡単な例です。hello2とhello4は引数があります。インテリセンスはhello2()と打ち込んだ状態で引数を表示してくれます。

ここで引数がstrGreetingと表示されています。つまり引数は文字列の挨拶になる、ということがわかります。
コーディングルールのところで説明しましたがルールを作って作業すると効率があがります。
パラメータ
hello_2('Good mornig ')以外にも様々なバリエーションがあります。
デフォルトパラメータ
C言語などでも使われています。パラメータを指定しなければデフォルトの値が使われます。
# -*- coding: utf-8 -*-
#デフォルトパラメータ
def default_param(param = 'good morining'):
print(param)
def main():
default_param()
default_param('good night')
if __name__ == "__main__":
main()
実行結果:
good morining
good night
可変長パラメータ
パラメータの先頭に*を付けると可変長パラメータになります。
# -*- coding: utf-8 -*-
def variable_param(*param):
print(param)
def main():
variable_param('Japan' , 'USA', 'England')
if __name__ == "__main__":
main()
実行結果:
('Japan', 'USA', 'England')
辞書型になるパラメータ
パラメータの先頭に**を付けるとj辞書型パラメータになります。
# -*- coding: utf-8 -*-
def dic_param(**param):
print(param)
def main():
dic_param(Japan = 'tokyo' , USA ='Washington', England='London')
if __name__ == "__main__":
main()
実行結果:
{'Japan': 'tokyo', 'USA': 'Washington', 'England': 'London'}
辞書型になっています。
関数のパラメータ
関数もオブジェクトなのでパラメータにすることができます。
# -*- coding: utf-8 -*-
def hogo(pram1, pram2):
print(pram1 + pram2)
def func_param(func, para1, para2):
func(para1, para2)
def main():
func_param(hogo, '本日は', '晴天なり')
if __name__ == "__main__":
main()
実行結果:
本日は晴天なり