関数とスコープ・ラムダ応用問題
以下のコードについて、最後の出力はどうなりますか? ```python def decorator(func): def wrapper(*args, **kwargs): kwargs['extra'] = 'added' return func(*args, **kwargs) return wrapper @decorator def greet(name, greeting='Hello'): return f"{greeting}, {name}!" print(greet('Alice', greeting='Hi')) ```
A.Hi, Alice!
✗ greeting='Hi'が渡されていますが、デコレータが不正なキーワード引数extraを追加しているため、greet()の定義にない引数でエラーが発生します
B.Hello, Alice!
✗ greeting='Hi'が明示的に渡されているため、デフォルト値は使用されません
C.TypeError例外が発生する← 正解
✓ 正解です。デコレータが無条件にkwargs['extra']='added'を追加し、greet関数は'extra'パラメータを持たないため、TypeError例外が発生します
D.NameError例外が発生する
✗ 関数と変数は正しく定義されており、NameError例外は発生しません
「関数とスコープ・ラムダ」の他の問題
以下のコードを実行したときの出力結果として正しいものはどれか。
def multiply(x, y=3):
r…以下のコードを実行したときの出力結果として正しいものはどれか。
square = lambda x: x ** 2
a…以下のコードを実行したときの出力結果として正しいものはどれか。
def calculate(a, b, c=2):
…以下のコードを実行したときの出力結果として正しいものはどれか。
numbers = [2, 3, 4, 5]
resu…以下のコードを実行したときの出力結果として正しいものはどれか。
def outer(x):
def inner…以下のコードを実行したときの出力結果として正しいものはどれか。
def func(a, b, *args):
…