0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Python3について(@,デコーダーについて)

Posted at

#デコーダについて

関数を装飾するとか、よく分からなかったので、自分で検証しました。
また、ふわっとしていますが、覚書として書きます。

deko.py
def deko(func):	#デコレータ
	def tent():
		print("This")
		result = func()	#これはpen()のこと
		print("a")
		return result
	return tent

@deko
def pen():#デコレーションされる関数
	print("is")
	return "Pen"

if __name__ == "__main__": #deko.pyで直接呼ばれた場合、Pen関数をプリントします
	print(pen())


>>>This
>>>is
>>>a
>>>Pen

1.@が付いている関数(今回だとpen())が実行される際に、print("is")ではなくdeko(func)が実行されます
2.deko(func)の中のfuncは、pen()の関数が実行されます
3.deko(func)の関数が終了すると、pen()に戻って来ます
4.最後にpen()のreturnが返されます

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?