デコレータのエラーについて

投稿者: Anonymous

下の画像のようなTypeError: ‘NoneType’ object is not callableのようなエラーが出ます。
これはどういうことなんでしょうか?
いまいちデコレータについて使い方などピンときていません。
画像の説明をここに入力

解決

test 関数の最後の return のインデントが間違っています。
1つ減らして、def new_func(*argc, **kwargs): の行と同じレベルのインデントであるべきです。

以下、Python 3.6.0 での実行例です。

>>> def test(func):
...     def new_func(*args, **kwargs):
...         print('start')
...         result = func(*args, **kwargs)
...         print('end')
...         return result
...     return new_func
... 
>>> @test
... def greething():
...     print('Greething')
... 
>>> greething()
start
Greething
end
>>>
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *