タグ

Pythonとdecoratorに関するU1and0のブックマーク (5)

  • Pythonのデコレータについて - Qiita

    今回は、Pythonデコレータについて話そうと思います。 はじめに。 エキスパートPythonプログラミング1に沿って勉強していた際に、Pythonのデコレーターという概念が出てきました。ちょっとに書いてある内容では何を言っているかわからなかったので、いろいろ調べてみました。 デコレーターとは デコレートとは修飾する。って意味になりますが、デコレータとは、簡単に言うと、ある関数を修飾するための関数とその仕組みです。例えば、ある関数があったとします。ここでは次のようなtest()関数とその実行スクリプトを見てみましょう。 サンプルスクリプト1

    Pythonのデコレータについて - Qiita
    U1and0
    U1and0 2018/10/16
    デコレータでhtmlタグを書く例
  • Python でclass内にdecoratorを持たせたい

    質問をすることでしか得られない、回答やアドバイスがある。15分調べてもわからないことは、質問しよう!新規登録して質問してみよう

    Python でclass内にdecoratorを持たせたい
    U1and0
    U1and0 2018/10/15
    decoratorメソッドのself引数を消すといかがですか。  ←どうしてこうなるのかわからないけど動く
  • Python デコレータ再入門  ~デコレータは種類別に覚えよう~ - Qiita

    Pythonのアットマーク(@)を使った記法であるデコレータについてまとめる。難しいと思われているかもしれないデコレータだが、デコレータの種類(パターン)を意識することが理解の近道だと思ったので今回は種類別にデコレータの簡単な実装例をあげて解説をしていこうと思う。 対象者 Python のデコレータを学んだことがあるがたまに分からなくなる デコレータを自作しろと言われたらスラスラかけるか不安 知っていると良いこと 関数のスコープ 第一級関数 *args , **kwargs のような記法 デコレータ関数の種類分け 以下2つの要因でデコレータ関数の種類分けが可能だと思われる。 引数を取るか否か ラッパー関数を返すか否か よって組み合わせから計4つのパターンが考えられるが、今回は "引数を取らずラッパー関数を返さないデコレータ"を除いた3つを紹介する。1つ除外する理由は簡単すぎて意味がなさそう

    Python デコレータ再入門  ~デコレータは種類別に覚えよう~ - Qiita
  • 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: 色々なデコレータの作り方と使い方、そして本質
    U1and0
    U1and0 2018/07/04
    “デコレータはクラスに対して使うこともできる。 以下のサンプルコードではクラスを関数のデコレータで修飾している。 これもデコレータがシンタックスシュガーに過ぎないということを考えれば自然に理解できる。 処
  • Pythonのデコレータを理解するための12Step - Qiita

    古い記事なんですが, Pythonのデコレータの概念をつかむには良記事だったので和訳意訳してみました. http://simeonfranklin.com/blog/2012/jul/1/python-decorators-in-12-steps/ Step1. 関数 これは基ですね. Pythonにおいて関数はdefキーワードにより関数名とパラメータのリスト(任意)とともに定義できます.また括弧付きで名前を指定することで実行できます. Step2. スコープ Pythonでは関数を作ると新しいスコープが作られます.言い方を変えるとそれぞれの関数がそれぞれに名前空間を持つということです. Pythonではこれらを確認することのできる組み込み関数も用意されていて, locals()で自身の持つローカルな名前空間の値を辞書形式で返却します.

    Pythonのデコレータを理解するための12Step - Qiita
  • 1