関数とスコープ・ラムダ応用問題

以下のコードについて、最後の出力はどうなりますか? ```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例外は発生しません

Python 3 エンジニア認定基礎試験 の問題一覧