タグ

blogとdecoratorに関するsuzukiMYのブックマーク (2)

  • Python: 色々なデコレータの作り方と使い方、そして本質

    Python にはデコレータという特徴的な構文がある。 この構文を使うと GoF のデザインパターンの一つ、デコレータパターンが作りやすくなる。 デコレータパターンは、ある関数やメソッドの処理内容のラッピングや、関数やメソッドのマーキングを通して様々な用途に使える。 まずは、デコレータの最も基的な使い方を以下に示す。 デコレータを使って修飾対象の処理をラッピングする。 サンプルコードでは ‘main’ 関数を 'decorator’ デコレータで修飾することで、元の処理内容に 'print’ 関数の実行を挿入している。 #!/usr/bin/env python # -*- coding: utf-8 -*- def decorator(func): def _decorator(*args, **kwargs): print('decorate') return func(*args,

    Python: 色々なデコレータの作り方と使い方、そして本質
  • Pythonのデコレータを理解するときに残したメモ - PYTHONIC BOOM BOOM HEAD

    Pythonのデコレータ(decorator)を理解する 3 - -を1,2,3全て読んで、以前僕がデコレータを理解するために残したメモもこんな感じだったなというのを思い出した。ずっと記事にしようと思いつつ忘れてたんだけどせっかくなので加筆修正しつつ公開してみる。 引数無しのデコレータ デコレータとは、その名の通り元の関数を装飾するもの。別の言い方をすれば、元の関数そのものを弄ること無く挙動を変更するもの。 まずは単純なデコレータから。 def hello(function): def _hello(*args, **kw): result = function(*args, **kw) return "Hello, {0}".format(result) return _hello @hello def name(arg): """my docstring""" return arg #

    Pythonのデコレータを理解するときに残したメモ - PYTHONIC BOOM BOOM HEAD
  • 1