Pythonのお勉強 Part20
■ このスレッドは過去ログ倉庫に格納されています
0652デフォルトの名無しさん
2007/09/30(日) 23:07:54d = {'a':10, 'b':20}
d.pop('x') #=> KeyError
d.pop('x', None) #=> 第2引数が返される
このように、任意の値を取ることができる省略可能な引数がある場合に、引数が指定されたかどうかを調べるにはどうしたらいいですか。
例えば次のような定義だと、引数にNoneを指定した場合に例外が発生してしまいます。こうではなくて、引数が指定されなかった場合のみ例外が発生するようにしたいです。
(例が恣意的なのは突っ込み禁止)
def f(arg=None):
if arg is None: raise Exception()
else: return None
あとは *args とする方法も考えられますが、間違った数の引数を渡してもエラーにならないので、あまりいい方法ではないです。
def f(*args):
if len(args) == 0: raise Exception()
else: return args[0]
■ このスレッドは過去ログ倉庫に格納されています