並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 124件

新着順 人気順

デコレータの検索結果41 - 80 件 / 124件

  • python デコレータを使って例外処理をモジュール化する - fakatatuku’s blog

    pythonで普通に例外処理を書くと、以下のようになる。 def hoge(*args): try: # 処理 except Exception as e: # 例外処理 return def fuga(*args): try: # 処理 except Exception as e: # 例外処理 return def piyo(*args): try: # 処理 except Exception as e: # 例外処理 return 例外処理の内容が全て同じである場合(例えばログに吐き出すとか)、かなり冗長である。 そこでデコレータを使用すると以下のように書ける。 def exception(func): def wrapper(*args, **kwargs): try: return func(*args, **kwargs) except Exception as e: # 例外

      python デコレータを使って例外処理をモジュール化する - fakatatuku’s blog
    • Pythonデコレータが熱い - なんたらノート第三期ベータ

      今回は decorator 3.4.0 : Python Package Index のお話。 Pythonのデコレータは便利です。関数の実体定義直後に、任意のフィルタをその関数に施すことができます。 def special(func): def invoker(*args, **kw): return "special " + func(*args, **kw) invoker.__name__ = func.__name__ invoker.__dict__.update(func.__dict__) invoker.__doc__ = func.__doc__ invoker.__module__ = func.__module__ return invoker #改変した関数を返す @special def myproc(): return "hoge" #ここで myproc =

        Pythonデコレータが熱い - なんたらノート第三期ベータ
      • NestJS の DTO と Validation の基本 - 型定義とデコレータで安全にデータを受け付ける - Qiita

        この記事は NestJS Advent Calendar 2019 3 日目の記事です。前日は @euxn23 による Module と DI の話でした。 これまで NestJS のはじめかたと Module と DI の話をしていきました。3 日目となる本日は、もう少し実際の開発に身近な機能である、DTO と Validation について紹介いたします。 tl;dr NestJS にはコアに Request Payload の型定義とバリデーションの機能が備わっている クラスベースの型オブジェクト DTO の定義によって、 Request オブジェクトに触らずに受け付ける型定義ができる DTO にバリデーションを敷くことによって、 Controller のメインロジックより前の段階で不正なアクセスを弾ける リクエストデータの検証について Web API を構築する場合、リクエストのデ

          NestJS の DTO と Validation の基本 - 型定義とデコレータで安全にデータを受け付ける - Qiita
        • Pythonのデコレータをイチから展開・解説してみた 【あれ? ただのクロージャじゃん】編 - すなぶろ

          前回のコードは思い返すだけでも寒気がするほどひどいものでした。そこで今回はPython固有の機能であるデコレータを使って、ちょっとPythonっぽいコードに変更します。 sandmark.hateblo.jp このデコレータ、LispやHaskellのように関数や処理を頻繁に渡す言語に慣れ親しんだ人なら比較的すぐに理解できると思うのですが、そうでない場合は難しく感じるかもしれません。しかし理解してしまえば「なんだそんなことか」といったものなので、もちろん乱用は禁物ですが、適宜使っていくことで明らかに読みやすく宣言的なコードを書くことができます。参考: PEP 318 再掲:リファクタリング対象 「デコレータとはなんぞや」というのは検索すればいくらでも出てきますので、今回ハマった点について書いていきます。また、デコレータが行うこと、行った結果関数がどう変更されるか、も書いてみようかと。 では

            Pythonのデコレータをイチから展開・解説してみた 【あれ? ただのクロージャじゃん】編 - すなぶろ
          • sh1.2 pyblosxom : デコレータを使いたい

            python2.4から導入されたデコレータ。これまで自分の人生には関係ないものとしてス ルーしてきたのですが、ここ何日か突然デコレータ使ってみたい病に掛かってしまった ので調べてみました。 IBM 魅力的な Python: デコレーターで魔法を身近に - Japan ASPN: Python Cookbookのdecoratorでの検索結果 最初なんのことやら全然わからなかったのですが、基礎的な部分に関しては、こういう ものかな?というのがなんとなく理解できたような気がするのでメモ。 デコレータ関数が引数を受け取らない場合 @deco def test(a,b): print a,b みたいな場合、デコレータ関数deco()の基本は下記のような感じ。 def deco(デコレータ対象となる関数のポインタ): def sub_deco(デコレータ対象となる関数の引数): //なんか処理 re

            • Shibu's Diary: RubyにもPythonのデコレータを

              渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 Pythonのデコレータがとっても便利です。すごくステキ。シンプルな文法のシンタックスシュガーなのに、夢がすごく広がります。僕がデコレータを本格的にさわったきっかけは、TurboGears。ビューのクラスのメソッドに、@exposeとやると、そのメソッドがルーティングテーブルに登録されて、ブラウザからそのメソッド名のURLをたたくと、外から呼び出せるようになる、という仕掛けです。実際に、内部で行われている処理はこんな感じです。 #pythonのデコレータのサンプル @expose def exposed_method(): pass #こうやって解釈される def expsed_method(): pass exposed_method = expose(exposed_met

              • 関数のデコレーターを作る - Qiita

                >>> @MyDecorator('any-tag') ... def foo(): ... print u'foo' ... >>> foo(): pre-action. tag=any-tag. foo post-action. tag=any-tag. class MyDecorator(object): def __init__(self, tag): self._tag = tag def __call__(self, f0): def decorated(*args, **kwargs): print u'pre-action. tag=' + self._tag ret = f0(*args, **kwargs) print u'post-action. tag=' + self._tag return ret return decorated from functools

                  関数のデコレーターを作る - Qiita
                • 半透明のウインドウ!Emeraldウインドウデコレーターを使おう!

                  デスクトップ効果-Compiz対応のEmeraldウインドウデコレーターを利用すると、半透明の美しいウインドウを利用できますよ。 インストール: $ sudo apt-get install emerald ウインドウに透明感が出ます。良い感じ。 メニューバーの「システム」→「設定」→「Emerald Theme Manager」からEmerald用のウインドウテーマを追加できます。 GNOME-Look.orgやCompiz-Themes.orgなどからEmerald用のウインドウテーマをダウンロードできますよ。 「テーマを編集」タブから、ウインドウの見た目を細かく設定できます。 ぷるぷるのウインドウ!デスクトップ効果を有効にしよう! ウインドウの視覚効果を有効にする デスクトップの見た目を変更する ヒント: Emeraldを利用するためにはインストール後にログインし直す必要があります。

                    半透明のウインドウ!Emeraldウインドウデコレーターを使おう!
                  • デコレータを使ってデータ加工処理の再実行を防ぐ - Qiita

                    概要 データを加工して,一度ディスクに保存し,それを再利用(二度目からはデータ加工をスキップ)するというのはよくある一般的な処理ですが,再利用時のパラメータの依存なども考えると意外と煩雑になりがちです. そこで,Pythonのデコレータを使ってスキップ判定をして,同じ処理を繰り返さない実装を考えます. 今回の処理をライブラリとしてまとめたものが github.com/sotetsuk/memozo にあります: モチベーション 例えば,今手元に膨大な量の文からなるデータ(一行につき一文)があるとします: 1. I have a pen. 2. I have an apple. 3. ah! Apple pen! ... 9999... # PPAP (copyright belongs to Pikotaro) 今,このデータから特定のキーワードが書かれた文だけをフィルタしたいとします(例

                      デコレータを使ってデータ加工処理の再実行を防ぐ - Qiita
                    • @propertyデコレータ - White scenery @showyou, hatena

                      googleのpythonコーディング規約の邦訳(http://works.surgo.jp/translation/pyguide.html)見てたら@propertyなんてのをあることを知った。 知らんかった。こんなことできるのね。

                        @propertyデコレータ - White scenery @showyou, hatena
                      • Who moved my SPAM?: デコレータについての諸々

                        Pythonにおけるデコレータにはメリットとデメリットがある。それらを解説しつつ、そのデメリットをうまいこと回避するようにしているライブラリVenusianの紹介につなげます。 デコレータについて まずはおさらい デコレータとは何か。一言で言えば関数をラップする関数を返す関数です。(以下、関数とメソッドを一括りに関数といいます。) 例えば、こんなメモ化デコレータ。 def memorize(func): cache = {} def _func(*args): if args not in cache: result = func(*args) cache[args] = result else: print("hit cache!: %r" % (args,)) return cache[args] return _func @memorize def sum(*args): j = 0

                        • Pythonのデコレータ構文について - KoshigoeBLOG

                          Djangoのキャッシュに関するドキュメントを読んでいて、(Python2.4から)デコレータ構文というものが使えるらしいと知りました。 関数・メソッドのデコレータ :: Python 2.4 クイックリファレンス 関数にデコレータを適用する『構文』については、上記リンク先の説明を読むだけで理解出来ます。デコレート対象の関数を作成する直前の行に@を頭につけたデコレータ関数名を記述するだけ、と。デコレータ構文の効果は、関数を関数でラップ出来るよ、という事でしょう。 そこで、実際に適当なコードを書いてみようと思ったのですが、デコレータが(内部的に)どういう動作をするのかがいまいち掴めませんでした。特に、引数をとる関数に対するデコレータを書く場合、実行時に渡された引数をどう引き継ぐのかに困りました。 ITmedia エンタープライズ:2.4への機能強化で広がるPythonの世界 (3/4) 上記

                          • 「Python 3.9」登場、デコレーターに関する制約の緩和、新しいパーサーの採用とは

                            連載目次 前回は、Python 3.9で辞書に追加された和集合演算子、文字列に追加されたremoveprefix/removesuffixメソッドなどを取り上げた。今回は、デコレーターに関する制約が緩くなったことや、新しいパーサーについて簡単に見ていこう。 デコレーターに関する制約の緩和 ここでPython 3.8とPython 3.9におけるデコレーターの違いをPythonのドキュメントで比べてみよう。以下はPython 3.8のドキュメント「関数定義」の画面キャプチャーだ。ここにはデコレーターがどんなものかも定義されている(「decorator」という部分)。

                              「Python 3.9」登場、デコレーターに関する制約の緩和、新しいパーサーの採用とは
                            • Pythonのデコレータを理解するまで

                              @xxxという書き方をみると何か変わった機能なのかと思うかもしれませんが、ただの関数を受け取り関数を返す関数というのを頭に入れておくと、デコレータの理解が進むと思います。 関数デコレータの作成 関数の開始時間・終了時間・処理結果をプリントするmy_loggerデコレータを作ってみます。 import datetime def my_logger(f): def _wrapper(*args, **keywords): # 前処理 print(f'{f.__name__}の実行') print(f'開始: {datetime.datetime.now()}') # デコレート対象の関数の実行 v = f(*args, **keywords) # 後処理 print(f'終了: {datetime.datetime.now()}') print(f'実行結果: {v}') return v r

                                Pythonのデコレータを理解するまで
                              • Pythonのデコレータにはwrapsをつけるべきという覚え書き - Qiita

                                Pythonのデコレータは最初理解するのが難しい。 そして理解したと思っていても実はベストプラクティスな実装ではないという事がしばしばある。 そんな中私が今まで知らなかった functools.wraps とは。 公式ドキュメント @functools.wraps(wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES)(原文) これはラッパー関数を定義するときに update_wrapper() を関数デコレータとして呼び出す便宜関数です。 これは partial(update_wrapper, wrapped=wrapped, assigned=assigned, updated=updated) と等価です。 def hoge_decorator(f): def hoge_wrapper(*args, **kwar

                                  Pythonのデコレータにはwrapsをつけるべきという覚え書き - Qiita
                                • Flaskでデコレーターを使うとうまく動かなかった件とその対策 - やつらかやつらだ

                                  Flaskでデコレーターを使う方法を調べてみた。 発端 Flaskでデコレーターを使ってみた うまく動いてる パスを増やした あれ?全部のパスで同じ関数呼ばれてない!? もしかしてデコレーター使えないの!? ちょっと検索するとFlaskでデコレーターを使う方法は見つかったんだけど、どういう理屈なのかの説明は見つけられなかったので調べてみた。 こういう物事を説明するのは絶望的に下手なんだけど調べた以上は書き留めたくて。。 でもって間違っているかもしれなくて。 問題と対策 ハマったときのコード from flask import Flask app = Flask(__name__) app.debug = True def sample_decolator(fnc): def decorate(*args, **kwargs): print 'sample_decolator' return

                                    Flaskでデコレーターを使うとうまく動かなかった件とその対策 - やつらかやつらだ
                                  • トイレの音消しにローランドが協力? LIXIL「サウンドデコレーター」の仕組み【藤本健のDigital Audio Laboratory】

                                      トイレの音消しにローランドが協力? LIXIL「サウンドデコレーター」の仕組み【藤本健のDigital Audio Laboratory】
                                    • デコレータを使わずコールバック関数に依存性を注入できるDIヘルパーをたった15行のTypeScriptで作った話 - Qiita

                                      一般的にTypeScriptでDIをしようとするとクラス+デコレータを避けて通れません しかし個人的には関数型っぽくコーディングするのが好きなのでクラスもデコレータも使わず関数だけでDIする方法を考えました たった15行なので解説の前にコードを紹介します type Deps<T extends Record<string, any>> = { [P in keyof T]: T[P] extends { _velona: boolean } ? (...args: Parameters<T[P]>) => ReturnType<T[P]> : T[P] } export const depend = <T extends Record<string, any>, U extends any[], V>( dependencies: T, cb: (deps: Deps<T>, ...arg

                                        デコレータを使わずコールバック関数に依存性を注入できるDIヘルパーをたった15行のTypeScriptで作った話 - Qiita
                                      • Python独特の概念であるデコレータを勉強してみた。 | ぼくのあたまのしくみ

                                        sponsored link expart python programingに沿って勉強していたところ、Pythonのデコレーターという概念が出てきた。ちょっと本に書いてある内容では何を言っているかわからなかったので、いろいろ調べてみました。 参考URL 下記にURLを参考にさせていただいたので、掲載させていただきます。 Python – デコレータ. 魅力的な Python: デコレーターで魔法を身近に メタプログラミングのための最新 Python 機能についての考察 python のデコレーター構文 デコレーターとは デコレートとは修飾する。って意味になりますが、デコレータとは、簡単に言うと、ある関数を修飾するための関数とその仕組みです。例えば、ある関数があったとします。ここでは次のようなtest()関数とその実行スクリプトを見てみましょう。 サンプルスクリプト1 def test

                                        • [メモ] Pythonのデコレータ – taichino.com

                                          出てくる度に調べる割に、いつまで経っても覚えられなかったデコレータですが、今回こそ仕留める為にメモエントリーです。まずよく見かけるのは関数の時間を計測するという例ですね。僕はこの形だけを何となく覚えては忘れていました。 #!/usr/bin/python # -*- coding: utf-8 -*- import time # デコレータ定義 def time_func(func): def decorator(*args): start = time.time() ret = func() print '%s was executed, it took %s sec' % (func.func_name, time.time() - start) return ret return decorator # デコレータ適用 @time_func def test(): time.slee

                                          • python デコレータを使ってロギング処理を楽にする - fakatatuku’s blog

                                            from datetime import datetime def logging(func): def wrapper(obj, *args, **kwds): print("{} {} {} {} args={} kwds={}".format( datetime.now().strftime("%Y-%m-%d %H:%M:%S"), "INFO", func.__qualname__, "START", args, kwds)) rtn = func(obj, *args, **kwds) print("{} {} {} {} return {}".format( datetime.now().strftime("%Y-%m-%d %H:%M:%S"), "INFO", func.__qualname__, "END", rtn)) return rtn return wrappe

                                              python デコレータを使ってロギング処理を楽にする - fakatatuku’s blog
                                            • Python のデコレータ式 (3) - デコレートする側とデコレートされる側に引数がある場合

                                              Python のデコレータ式 (2) のつづき 1. デコレートされる関数に引数がある場合を考える これまで試したデコレータ式は、デコレートされる側の関数が引数を取らなかった。 Python のデコレータ式 (1) より、 def D(f): print u"デコレータが実行された" return f # デコレータを適用したときに、関数 D が適用される。 @D def hoge(): print "hoge" hoge() 前回は `デコレートする側に引数がある’ 場合について考えた。 Python のデコレータ式 (2) より、 def D(arg): def _(f): def __(): print "*--" * arg f() print "--*" * arg return __ return _ @D(5) def hoge(): print "hoge" hoge()

                                                Python のデコレータ式 (3) - デコレートする側とデコレートされる側に引数がある場合
                                              • Python の property 関数 (デコレータ) でプロパティへのアクセサを作る

                                                Python の property 関数 (デコレータ) を使うとプロパティへのアクセサを作れるみたい。 アクセサはオブジェクトのプロパティを操作するときに実行されるメソッドのこと。 まずはデコレータを使わずに property 関数を使ったサンプル。Sample#x に値を代入するともれなく 2 倍になるのと del Sample#x しようとしても値を print するだけで実際には削除されない。実用性は皆無だけど動作のイメージはつかめるんじゃないかと。 #!/usr/bin/env python # -*- coding: utf-8 -*- class Sample(object): def __init__(self): self._x = 0 def _get_x(self): return self._x def _set_x(self, x): # 代入するときに 2 倍に

                                                  Python の property 関数 (デコレータ) でプロパティへのアクセサを作る
                                                • 関数の引数に渡された値の型をチェックするデコレータを書いてみた - present

                                                  C# 暦の長い私が動的言語の Python に初めて触れたとき、関数の引数にいろんな型の値を渡せることを気持ち悪く感じました。今では慣れましたけど。 Python は動的言語なので、正常に動くかどうかは別として、関数の引数に何でも渡せます。その値が使えるかどうかを判断するのは、関数内部でのお仕事。サポートしている型の値かどうか判断する if 文の何回も書くのは正直面倒です。 そこで、引数の型をチェックするデコレータを作ってみました。Python の標準ライブラリで提供されている inspect モジュールを使って、引数名や渡された値といった、関数の情報を取得しています。 def require_type(name, klass): """引数の型をチェックするデコレータ""" def _require_type(func): def __require_type(*args, **kwar

                                                    関数の引数に渡された値の型をチェックするデコレータを書いてみた - present
                                                  • PythonのデコレータでLambdaのコードをクリーンに保つ!! | DevelopersIO

                                                    サーバーレスアプリの開発では「フレームワークを使わない」という選択肢が採用されることも多いと思います。 フレームワークに頼らずにロジックを共通化し、Lambdaのコードをクリーンに保つ手法について調査したのでご紹介します。 はじめに サーバーレス開発部@大阪の岩田です。 PythonにはDjangoやFlaskといったメジャーなアプリケーションフレームワークが存在しますが、サーバーレスアプリの開発においては「フレームワークを使用しない」という選択肢が採用されることも多いと思います。 フレームワークを使用しない場合、フレームワークがやってくれるような処理も全て自前で実装する必要があるため、自然とLambdaのコードが肥大化しがちです。 小規模な開発であれば、あまり問題になりませんが、中規模以上の開発になってくると、フレームワークを利用しないことの辛身が出てきます。 コードをクリーンに保つため

                                                      PythonのデコレータでLambdaのコードをクリーンに保つ!! | DevelopersIO
                                                    • Djangoメモ(25) : login_requiredデコレータでビューをログイン済みユーザーのみに制限 - もた日記

                                                      login_requiredデコレータ ログイン後のリダイレクト先 login_requriedのテスト Topic作成者としてログインユーザーを指定 まとめ A Complete Beginner's Guide to Djangoのチュートリアルを参考にビューをログイン済みユーザのみに制限してみる。 login_requiredデコレータ 前回まででユーザー認証機能は実装したので、新しいTopicを作成する機能をログイン済みユーザのみに制限する。 上の画像からわかるように現時点ではログインしていないユーザーでもアクセスできるようになっている。 ログイン済みユーザのみに制限する方法は簡単で@login_requiredをインポートして対象のビュー関数の前に追加すればよい。 今回の場合はboards/views.pyを以下のように編集する。 from django.contrib.auth

                                                        Djangoメモ(25) : login_requiredデコレータでビューをログイン済みユーザーのみに制限 - もた日記
                                                      • 『巷で話題の『ちくわデコレーター』を使って【男の料理】「ちくわ唐揚げ」作ってみたら…“高評価”⁉️』

                                                        Welcome to kiyo1115's 食彩王国 ジャンルを問わず、美味しさを求め東奔西走。選りすぐりのお店や逸品…特に「身の丈」すなわち、お小遣いで行ける(特徴的な)お店の食べ歩き、ペット同伴可能のお店などを中心にご報告。 日本ブログ村・人気ブログランキング『グルメ』部門全体ランキングTOP10ランクイン

                                                          『巷で話題の『ちくわデコレーター』を使って【男の料理】「ちくわ唐揚げ」作ってみたら…“高評価”⁉️』
                                                        • LIXILとローランド、音にこだわったトイレ用音響装置「サウンドデコレーター」

                                                            LIXILとローランド、音にこだわったトイレ用音響装置「サウンドデコレーター」
                                                          • デコレータの使いどころ - Qiita

                                                            デコレータの書き方はわかった。 デコレータとはその名の通りデコレートするものだ。 何をデコレートするのかといえばそれはもう関数、関数である。 あとメソッドである。 俺はわかった。たいへんだ。デコレータをわかってしまった。 タケシはそう呟くと弾かれたように走りだした。 だが信号が点滅し始めたので止まった。 そう、彼は交通ルールを守るのだ。 そして暇を持て余すように考える。 書けるようになったら使っていきたいのが人情というものだ。 だが、実際使ってみたいと思うと、いまいち使いどころがわからない。 有効な使い道が思い浮かばないのだ。 そんな人。 ハイ!俺もわかりません! いや、でも、ちょっとわかってきたかも。 なぜデコレータを使うのか なぜデコレータを使うのか? 好ましくない冗長性の排除やDRYのためにデコレータを使う 読みやすさの向上のためにデコレータを使う 思いつくものとしてこういうのがあり

                                                              デコレータの使いどころ - Qiita
                                                            • デコレータ | TypeScript 日本語ハンドブック | js STUDIO

                                                              はじめに デコレータ はじめに TypeScriptとES6のクラスの導入により、クラスやクラスメンバの注釈付けや修正をサポートするための追加機能が必要なシナリオとして存在するようになりました。 デコレータは、クラス宣言とメンバの注釈(アノテーション)とメタプログラミング構文の両方を追加する方法を提供します。 デコレータはJavaScriptのステージ1の提案であり、TypeScriptの実験的な機能として利用できます。 注意: デコレータは実験的な機能であり、将来のリリースで変更される可能性があります。 デコレータの実験的なサポートを有効にするには、 experimentalDecoratorsのコンパイルオプションをコマンドライン、またはtsconfig.jsonのいずれかで有効にする必要があります。 { "compilerOptions": { "target": "ES5", "e

                                                              • JavaScriptデザインパターン – 第2部:アダプター、デコレーター、ファクトリ | Adobe Developer Connection

                                                                アダプターを必要とする理由 非常によくあることですが、アプリケーションの開発や保守を行っていて、アプリケーションのチャンク(例えばログやその種のデータの保管に使用しているライブラリ)を置き換える必要があると判断したとします。新しく置き換えるために用意したライブラリが、古いライブラリとまったく同じインターフェイスを持っている可能性は低いでしょう。この先の作業については、次の2つの選択肢があります。 コード全体を確認し、古いライブラリを参照している部分をすべて変更する新しいライブラリで古いライブラリとまったく同じインターフェイスを使用できるようにアダプターを作成する アプリケーションが小さかったり、古いライブラリの参照が少ししかない場合は、新しい抽象化層でコードをコンパイルするよりも、コード全体を見直して新しいライブラリに合うようにコードを変更した方がよいと思えることもあるでしょう。とはいえ、

                                                                • デコレータを用いた bottle.py のセッション管理

                                                                  デコレータを用いた bottle.py のアクセスコントロール 1. 初めに bottle.py は軽量な python 製 web フレームワークです。 機能はルーティングとレンダリングだけの簡単なフレームワークで、極めて簡単に習得できます。 そのため、モックアップの作成に最適で、紫藤もしばしば利用しています。 bottle.py には セッション管理機能はないのですが、beaker と組み合わせてセッション管理をすることができます。 この記事ではセッションを用いた実用的なアクセスコントロールについて述べます。 2. インストールと基本手な使いかた bottle.py の基本的な使い方は、 Bottleチュートリアル(日本語訳) などを参考にしてください。 以下、簡単に記載します。 2.1. インストール bottle.py や beaker のインストール方法は ここや ここに詳しく書

                                                                  • Propertyデコレータを使う? - Qiita

                                                                    class Prop1(object): @property def x(self): '''x property''' return self._x @x.setter def x(self, value): self._x = value @x.deleter def x(self): del self._x ただ,これpropertyデコレータで指定できるのはgetterのみで, 以下のようにdeleterにpropertyデコレータをつけても,deleterが定義されない. (setter/getterは定義される) class Prop2(object): @property def x(self): del self._x @x.setter def x(self, value): self._x = value @x.getter def x(self): return se

                                                                      Propertyデコレータを使う? - Qiita
                                                                    • Shibu's Diary: 引数のカッコが省略可能なデコレータの実装方法

                                                                      渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 Taken by Chris Gin under CC BY-NC Pythonの中でも、僕が気に入っている文法がデコレータです。関数やメソッド、クラスの前に置くことで、様々な処理を行うことができます。デコレータを実装するには、ただ関数を書けばいいだけです。実際にコードを書く際にも良く使いますし、このブログでもいくつか紹介してきました。 oreilly2sphinx(イベントハンドラ登録用の情報収集用) RubyでJavaのsynchronizedを(Rubyにもデコレータを輸出) このエントリーでは、デコレータにまつわるTipsを一つだけお届けします。ちなみにトップ画像の鳥ですが、デコレータ→仮面→masked birdと連想ゲームでした。仮面をかぶったように見える鳥みたいで

                                                                      • Fabricの階層化に使う @ task デコレータの挙動 - 憧れ駆動開発

                                                                        fabric を扱う可能性が出てきた 今まで概要は知っていたけどもうちょっと知らないといけなさそうだしちょっとさわってみた 概要 公式::Fabric — Fabric 1.8 documentation 参考::Fabric デプロイツールのPythonicな書き方 - Ian Lewis 参考::Fabricを使ってリモートサーバーでコマンドを実行する - スコトプリゴニエフスク通信 参考::fabfileの構造化 - logiqboard デプロイツール。複数環境にデプロイするときにいろいろ設定を予めかいておいてあとは実行するだけにてきる。「じゃあシェルスクリプトやれよ」っていうかもしれないし実際中身はシェルスクリプトなんだけど、それを Python でかけてわかりやすく階層化できるから使っているらしい。ちなみにこの手のツールは Ruby だと Puppet とか Chef とか C

                                                                          Fabricの階層化に使う @ task デコレータの挙動 - 憧れ駆動開発
                                                                        • デコレータをイラストで理解する — ぱいそんにっき

                                                                          foo を呼び出したとき(左), 小人さんは foo という変数に束縛された関数オブジェクトを呼び出します. 一方, (foo) を呼び出したとき(右), 小人さんは foo という変数に束縛された手続きを評価した結果の値を返します. 小人さんは手続きを評価するときは, その関数オブジェクトを別の環境にコピってきてその評価の結果を出力し, それが終わったらコピってきた環境は破棄します. foo 呼び出しと, (foo) 呼び出し, 両者は全く別物ですね! ではでは, この理解の上にデコレータ(というか高階関数)の振る舞いを考えてみます. gosh> ( define ( deco func ) ( define ( wrapped ) ( func )) wrapped ) deco gosh> ( define ( foo ) ( print "hello" )) foo gosh> d

                                                                            デコレータをイラストで理解する — ぱいそんにっき
                                                                          • LIXILとローランド、トイレで真のリラックスを実現するトイレ用音響装置「サウンドデコレーター」

                                                                              LIXILとローランド、トイレで真のリラックスを実現するトイレ用音響装置「サウンドデコレーター」
                                                                            • JavaScript の デコレータ の使い方

                                                                              2019/03/17 現在はまだ Stage 2 (Draft) の段階ですが、面白そうなのでメモ。 自分なりに分かりやすくまとめてみようと思います。 参考「Decorators proposal」 参考「GitHub - tc39/proposal-decorators: Decorators for ES6 classes」 1. デコレータとは何か クラスやメソッドに機能を追加するもの。 (Java でいうアノテーション) 2. 基本的な使い方 デコレータは関数で定義します。 (ここではアロー関数を使っていますが、普通の function でも大丈夫です) 2.1. クラス

                                                                                JavaScript の デコレータ の使い方
                                                                              • django: ログイン画面をメッセージでカスタマイズするためのデコレータ - karasuyamatenguの日記

                                                                                ウェブサイトにユーザを引き込むには、できるだけauth無しで機能を体験させてあげ、本当に必要なところに来たら登録またはロクインを求めるようにしたい。無名のサイトで何もできる前にログイン強制したらユーザは帰てしまうから。 djangoではログインが必要なviewに@login_requiredデコレータを被せて必要に応じてログイン画面に飛ばすのが一般的だ。この際、ログイン画面にviewごとのメッセージを入れると親切だ。「投稿するにはログインが必要です」とか「お気に入りを付けるにはログインしてください」などのメッセージをログイン画面の上に出すとユーザの理解を得やすくなると思う。 ログイン画面のテンプレートはmsgとうい変数がある場合はそれを表示するようにする。あとはviewとメッセージを結び付けるだけ。このようにできたら簡潔でいい: @add_message_to_login('「投稿するには

                                                                                  django: ログイン画面をメッセージでカスタマイズするためのデコレータ - karasuyamatenguの日記
                                                                                • Pythonのfunctoolsモジュール(デコレータ、部分適用) | Ore no homepage

                                                                                  Pythonの関数�の部分適用を行うfunctools.partial、デコレータを書くときなどに使うfunctools.wrapsについて。 えーと、社内の有志でbottle.pyのソースコードリーディングをやったんだよね。んで、まぁ、functoolsの理解が弱くて読むのに詰まったので、一旦自分の理解としてまとめておく。デコレータとか普段自分で実装する機会あまりないので、そのあたりの理解を深めることができたのも収穫だった。やっぱ勉強会は少人数の方がいいね。やる気ある人だけで催すクローズドなやつがいい。全員発表ルールの。会員制クラブみてーなやつ(違うか)。 0. functoolsについて まず、functoolsとはなんなのか?という話なんだけど、公式を見てみると次のような記述がある。 9.8. functools — 高階関数と呼び出し可能オブジェクトの操作 バージョン 2.5 で追