Pythonで自前の関数を定義する
目次
Pythonで自前の関数を定義するには
Pythonで関数を定義するときはdefを使います。
def funcname([parameter_list]):
    statements
    return objects
変数  | 
内容  | 
|---|---|
funcname  | 
定義する関数の名前  | 
parameter_list  | 
関数の引数  | 
statements  | 
関数が実行するコード  | 
objects  | 
関数が呼び出し元に戻すオブジェクト  | 
引数なしの関数の場合は、parameter_listは省略できます。 戻り値なしの関数の場合は、returnとobjectsを省略できます。
defの行の最後のコロン(:)を忘れずに。
statementsはもちろん複数行にすることができます。どこまでがその関数なのかと言うことは、字下げで表現します。
例えば、引数をprintする関数を定義してみます。
>>> def myfunc(str):
...     print('from myfunc : ' + str)
...     return 0
...
>>> result = myfunc('Hello')
from myfunc : Hello
>>> result
0
returnの無い関数はNoneを返す
returnの無い関数は、実際にはNoneを返します。
>>> def myfunc(str):
...     print('from myfunc : ' + str)
...
>>> result = myfunc('Hello')
from myfunc : Hello
>>> result
>>> print(result)
None
resultという変数の中身がNoneになってますね。
引数に名前を付けるには
同じ型の引数が並んでいたりすると、順番を間違えたりします。
>>> def myfunc(str1, str2):
...     print('from myfunc : ' + str1 + str2)
...
>>> myfunc('Hello.','Yeah.')
from myfunc : Hello.Yeah.
>>> myfunc('Yeah.','Hello.')
from myfunc : Yeah.Hello.
ということで、引数に名前を付けてみます。とは言っても、すでに付いているstr1とstr2がその名前です。 関数を呼び出すときに、関数に渡す各オブジェクトがどの名前の引数に関連付くのかを指定できます。
>>> def myfunc(str1, str2):
...     print('from myfunc : ' + str1 + str2)
...
>>> myfunc(str1='Hello.',str2='Yeah.')
from myfunc : Hello.Yeah.
>>> myfunc(str2='Yeah.',str1='Hello.')
from myfunc : Hello.Yeah.
引数の順番を考えなくても良いわけですね。わかりやすいです。
引数の既定値を規定するには
引数の既定値を規定できます。
>>> def myfunc(str1='default_str1',str2='default_str2'):
...     print('from myfunc : ' + str1 + str2)
...
>>> myfunc()
from myfunc : default_str1default_str2
>>> myfunc(str2=' arg2')
from myfunc : default_str1 arg2
関数の中で引数の数を数えて種類を調べて・・・とかしなくて良いんだ。これは便利。
公開日
広告
Pythonカテゴリの投稿
- PythonからWindows RuntimeのAPIを使ってみる
 - Pythonから外部のアプリケーションを実行する
 - PythonでApacheのログを読む
 - PythonでURLを結合する
 - PythonでURLを解析する
 - Pythonでtar.gzなファイルを解凍(展開)する
 - Pythonでwavファイルを書き出す
 - Pythonでwavファイルを読み込む
 - Pythonでデータを整形して出力する
 - Pythonでハミング窓関数を作る(SciPy編)
 - Pythonでブール値を数値に変換する
 - Pythonでモジュールをインポートする
 - Pythonで数値を比較する
 - Pythonで文字の内容から真偽値の判定をする
 - Pythonで自前の関数を定義する
 - Pythonで論理演算する
 - Pythonのprint関数で改行せずに出力する
 - Pythonのプログラムを終了する
 - Pythonの関数には参照を渡す
 - Windows10 バージョン1703 Creators Update にPythonとSphinxをインストール
 - Windwos10 バージョン1703 Creators Update にPythonとSphinxをインストール (Anaconda編)
 - reStructuredTextの表
 - ダウンロードしたファイルのチェックサムをPythonで確認してみた
 - 反復処理 (while)
 - 反復処理(for)
 - 条件分岐
 - 自作のモジュールをインポートする