MOの気になることを適当に伝えるブログ

moNote

Python

Python - 関数の定義

投稿日:2020/08/16 更新日:

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]

のようにします。
 

-Python
-

Copyright© moNote , 2020 All Rights Reserved Powered by STINGER.