Ptyhon の ユーザ関数定義についての説明。
ユーザ定義の関数
def func(): #関数の定義
print("ABC")
print("ABC")
func() #関数の呼出し
ABC
ABC
関数の 定義は def文を使います。
def add(x, y): # 引数をもつ関数の定義
print(x + y)
add(3, 5)
8
引数(パラメータ)の設定も 多くの言語と同じ。
return 文 (戻り値)
def add(x, y):
ans = x + y
return ans # 戻り値の設定
n = add(3, 5)
print(n)
戻り値 は return文で返します。
def add(x, y):
ans = x + y
# return ans # 戻り値の設定
n = add(3, 5)
print(n)
None
return文 を省略すると 関数はNoneを返します。
引数の省略 と デフォルト値
def add(x, y = 10): # デフォルト値 y=10
ans = x + y
return ans
print(add(3, 5))
print(add(3)) # yを省略
8
13
引数には デフォルト値を設定できます。
def fun(a , L = []): # デフォルト値がリスト
L.append(a) # 追加
return L
print(fun(1))
print(fun(2))
print(fun(3))
print(fun(4,[]))
print(fun(5))
[1]
[1, 2]
[1, 2, 3]
[4]
[1, 2, 3, 5]
デフォルト値は 1 度だけの評価です。
デフォルト値がリストのような変更可能なオブジェクトの時には、その影響がでます。
上記では、後に続く関数呼び出しで関数に渡されている引数が累積します。
累積しないようにしたい場合は
def fun(a , L = None):
if L is None:
L = [] # デフォルト値がリスト
L.append(a) # 追加
return L
print(fun(1))
print(fun(2))
print(fun(3))
print(fun(4,[]))
print(fun(5))
[1]
[2]
[3]
[4]
[5]
のようにします。
コメント