並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 124件

新着順 人気順

デコレータの検索結果81 - 120 件 / 124件

  • mock.patch をデコレータ、コンテクストマネージャとして使う

    patch はコンテクストマネージャでもあるので、with を使った書き方ができます。with でつくられたブロックの中でだけ、モックが機能するようになります。 >>> from mock import patch >>> with patch('random.random') as m: ... import random ... random.random() # もうモックになっている。戻り値は Mock オブジェクト ... m.return_value = 0.5 ... random.random() # 戻り値は 0.5 ... <mock.Mock object at 0x423ed0> 0.5 >>> random.random() # モノホンの random 関数 0.84432022018162511 with ブロックの中に入った時点で、random.random

    • [python]デコレータでfunctools.wrap()を使う - logging.info(self)

      前々回に書いた記事の続き。 functools.wrap()とは? Pythonのマニュアルには これはラッパ関数を定義するときに partial(update_wrapper, wrapped=wrapped, assigned=assigned, updated=updated) を関数デコレータとして呼び出す便宜関数です と書かれているが正直サッパリ。 上記の説明文の下はサンプルコードが書かれていて、更にその下にはドキュメント文字列が失われると書いてある。 まあ要するにデコレータでラップされる側の関数が何かしら上書きされる、ということなんだけど公式のドキュメントにはその場合の例が書いてないので変更してみよう。 するとコードは以下のようになる。 def my_decorator(f): def wrapper(*args, **kwds): print 'Calling decorat

        [python]デコレータでfunctools.wrap()を使う - logging.info(self)
      • デコレータを外す - logiqboard

        おはこんばんちわ。情弱王子feizです。 最近とある方の影響で自動テストに凝っておりまして、それはもうセルフプレジャーを覚えた猿のようにテストを書いてるとかいないとかな毎日です。 さて Pythonでテストをかいてると、たまにデコレータが邪魔になることがあります。 例えばjsonを返すAPIのビューをdjangoでこんなふうにかきました。 class Api(object): @require_GET @json_response @error_handle @validate(MyViewForm) def myview(self, request, params): return { "azuma": params["feiz"], "okano": params["tokibito"], } require_GET リクエストメソッドをチェック json_response 辞書をjs

          デコレータを外す - logiqboard
        • 『<セリア>バズってる!広がるミストスプレーボトルと便利!ちくわデコレーター・雲型ボトルオープナー』

          <セリア>バズってる!広がるミストスプレーボトルと便利!ちくわデコレーター・雲型ボトルオープナー | 100均主婦miyuremamaは今日も元気です

            『<セリア>バズってる!広がるミストスプレーボトルと便利!ちくわデコレーター・雲型ボトルオープナー』
          • 【TypeScript】デコレータを深く学んでみる - Qiita

            はじめに 今回はデコレータについて深く学んでみます。 @(アットマーク)から始まるあれです。 Angularなどを使用されたことがあれば、見慣れていらっしゃるかもしれません。 @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) 現在は非推奨ですが、Nuxtの nuxt-property-decorator などでも使われていたりします。 デコレータとは? まず公式のリンクです。 デコレータとはメタプログラミングに役に立つ機能です。 メタプログラミングとは ユーザが直接触ったり見たりする機能には使われませんが、 開発者が使いやすい道具を提供することに向いています。 例えば、クラスやクラスのメソッドが正しく使われることを保証した

              【TypeScript】デコレータを深く学んでみる - Qiita
            • 高階関数としてのデコレータに関する考察 - saito’s blog

              デコレータはPython2.4で追加された構文で、関数やメソッドのラッピングを行ないます。 @deco1 def foo() pass @deco2(args) def bar() pass このプログラムは以下のプログラムと等価です。 def foo() pass foo = deco1(foo) def bar() pass bar = deco2(args)(bar) この構文は静的メソッドやクラスメソッドの定義を分かりやすく書きたいという動機から追加されました。 静的メソッドやクラスメソッドの定義は、デコレータ導入以前では以下のように書かれていました。 class C(object): def foo(cls, x): pass foo = classmethod(foo) def bar(y): pass bar = staticmethod(bar) デコレータ構文を使用すると

                高階関数としてのデコレータに関する考察 - saito’s blog
              • Pythonで async def / def 両対応のデコレータを書く - 愛と勇気と缶ビール

                タイトルの通り。 単純に以下の様なdecoratorを書くと、async defをラップできない。 from functools import wraps from datetime import datetime def timetrack(func): @wraps(func) def inner(self, *args, **kwargs): start = datetime.now() return_value = func(self, *args, **kwargs) end = datetime.now() self.logger.info('%s takes %s sec', func.__name__, (end - start).total_seconds()) return return_value return inner かといって次のように書くと、今度は普通のde

                  Pythonで async def / def 両対応のデコレータを書く - 愛と勇気と缶ビール
                • [Python][翻訳]関数デコレータ

                  Pythonの関数デコレータについて調べていたところ、 Dive Into Python 3 Appendix.C 「ここからどこへ進むのか」にて、Ariel Ortizによる 関数デコレータ、続関数デコレータ が紹介されていた。 早速見てみると、分かり易くて初学者には良いなと思った。 どうせ、記憶力がない私のこと、何度も忘れて見に行くことを考えると、 一度、勉強がてら、翻訳しておこかなぁ?と思い、 作者のAriel Ortizに翻訳とブログへの掲載・コメント 許可を求めたところ「OK」とのお返事を頂きました。 Ariel Ortizのブログページ ProgrammingBits 英語もPythonもアレな私が翻訳しているので、少しでもオカシイところがあれば、 それは私の責です。原文をあたって下さいませ。突っ込みお願いします。 関数デコレーター プログラミング言語Pythonは、デコレータ

                  • インスタンスメソッド用デコレータを書いてみた - logging.info(self)

                    そう言えば関数のデコレータってそこそこ書いたことあるけどインスタンスメソッド用のデコレータって作ったことないなと思い挑戦。 通常の関数のデコレータとは微妙に違うようなのでその辺も踏まえて比較もしてみた(最後はどっちでも使えるようにしたけど。 デコレータはいつもどうやって書いたっけ?となるのでメモの意味も兼ねてここに記載。 インスタンスメソッドと関数の違い Pythonでのインスタンスメソッドは必ず第1引数に自分自身のオブジェクトを表すselfという変数が入る。 下記のコードを実行するとbar()の呼び出したところでメソッドの引数の個数が合わないというエラーを返す。 class Hoge(object): def foo(self): pass def bar(): pass hoge = Hoge() hoge.foo() hoge.bar() エラーメッセージは以下。 Traceback

                      インスタンスメソッド用デコレータを書いてみた - logging.info(self)
                    • 高階関数とデコレータ - Qiita

                      集合Aと集合Bがあるとき、集合Aの任意の元 a に対し、集合Bの元 f(a) を一意に決める規則 f を、 A から B への関数という。 引数を2倍して返す関数 times2 を考える このとき、 i として 0, 1, 2 を与えると times2(0) == 0 times2(1) == 2 times2(2) == 4 と set([0,1,2]) から整数の集合への関数が定義されている。 プログラミングにおける関数 プログラミングにおいて関数には以下のような効能がある 同じようなコードがあちこちにある→抽出して1か所にまとめる→知識が集約される ひとまとめにできるコードの断片がある→目的を表す名前をつける→処理を俯瞰できる 以下で説明する高階関数を使いこなすことで、これらの効能を得られる場面が増える。 引数としての関数 引数を0倍する関数、1倍する関数、2倍する関数があったとき、

                        高階関数とデコレータ - Qiita
                      • Pythonのデコレーターの使い方 - mfumiの日記

                        数カ月前にPythonのデコレーターを勉強した時はよく分かんなかったんですが、今日勉強してみたらなんか分かった気がするのでめも。間違ってたらごめんなさい。 以下のサイトを参考にしてます。 ・Python decorator 日本語で分かりやすいです。 ・PEP 318 -- Decorators for Functions and Methods | Python.org 例はここのを使用してます。 デコレーターって何? Pythonでクラスメソッドを作成するとき、以前*1は、 class x(): def foo(cls): pass foo = classmethod(foo) と、する必要がありました*2。これじゃ面倒くさいよねってことで考えられたのがデコレーターです。デコレーターを使うと上のクラスは次のように書き換えることができます。 class x(): @classmethod

                          Pythonのデコレーターの使い方 - mfumiの日記
                        • 時間城年代記:デコレータで遊ぶ(続編)

                          ■いろいろ調べてみると 出版されている本の中で紹介されていることは少ないデコレータなのだが、ネットを調べてみると、やはり色々な人が書いている。 ただ、なんだか難しいモノが多い…… 私は複雑なモノは判らないレジスタの少ない頭を持っているので、バラバラにして、とりあえずワンステップづつ見ていこうと思う。 ■基本形 引数を取らないデコレータの基本形は次の通り。 def decorator(f): def wrapper(*args,**kwd): return f(*args, **kwd) return wrapper ちなみに、何の効果も無いが、func_nameが'wrapper'になってしまうので、気になる人はwrapperのfunc_nameを変えておくと良いかも。 仕組みは比較的簡単。 とりあえず前回話した通り、デコレータの戻り値がそのままデコレートされた関数なりクラスなりと入れ替わ

                          • Python のデコレータの使い方

                            Python のデコレータの使い方について見てみます。 デコレータとは、関数やクラスを「装飾」する機能のこと。デコレータを使うことで、既存の関数やクラスの中身を直接触ることなく、その外側から機能を追加したり書き換えたりすることができます。 Python では、関数やクラスもオブジェクトということもあって、自分オリジナルのデコレータをかんたんに作ることができます。デコレータは @ 文字を使用して記述します。 具体的に見ていきましょう。次のような hello 関数が定義されているものとします。 # あいさつを返す関数 def hello(): return "konichiwa" print hello() # => konichiwa # 定義したとおりの結果が返ってくる # デコレータパターンを使うために # 関数を受け取り関数を返す関数を定義する def mydec(func): def

                              Python のデコレータの使い方
                            • Python/Memoize: 実装をカスタマイズできるMemoizeデコレータ

                              Dictionary-like なオブジェクトを引数として受け取り,それを使ってメモ化を行うデコレータ(decorator)です.メモ化対象の関数・メソッドの特性に応じて,in memoryでキャッシュを行ったり,ディスク上のデータを読み書きしたりする,といったキャッシングの方法を外部から隠蔽できます. 使用例 from memoizer import memoize, pickle_cache linkPattern=re.compile(r'^.+?<a href="http://web.archive.org/web/([0-9]{14})/.+$') @memoize(pickle_cache('urlbirthday', expire=sys.maxint)) def urlbirthday(url, unavailable=None): try: for line in ur

                              • 認証必須の URL は app.yaml ではなくデコレータで記述 - present

                                Google App Engine(以下 GAE)で、ある URL をログイン必須や管理者専用にする方法として、app.yaml で指定する方法があります。でもこの方法だと、RequestHandler のコードを見たとき、ログイン必須なメソッドなのかが分らないので、好きじゃないです。 「ログイン必須」とか「管理者専用」といったコメントを記述する手もありますが、書き忘れ・修正忘れが発生する可能性があるので、スマートじゃないですよね。 私の場合、認証が必要な URL は、対応する RequestHandler のメソッドにデコレータを付けています。ログイン必須の場合は google.appengine.ext.webapp.util にある login_required を指定。GET 以外のメソッドでも指定したい場合は自作の login_required。 ログインが必要なメソッドを実装す

                                  認証必須の URL は app.yaml ではなくデコレータで記述 - present
                                • Pythonのデコレータの基本:使い方から functools.wrapsの利用まで - Qiita

                                  前回の記事 の冒頭で、LINE Bot作成中、そしてその中で分からなかった概念を勉強中である、と書きました。 前回でクロージャについては勉強できたので、次は デコレータ についてまとめます。 LINE Botの公式サンプルは Flaskを利用しているので、コード中に @、すなわち デコレータ が多く出てきます。 やはり少し調べた程度ではピンとこない機能だったので、まとめてみました。 なお、本来の目的に照らし、ここではデコレータの機能の一部に焦点化して解説しています1。 「Flaskで LINE Bot作ろう」 ->「デコレータでルーティングしてる、デコレータ理解してないから勉強しよう」 <- 今ここ ->「デコレータはクロージャを使った仕組みらしいけどクロージャ分からないから勉強しよう」 1. デコレータの理解に必要な知識・仕組み 本記事で紹介する範囲のデコレータの理解に必要な知識・仕組み

                                    Pythonのデコレータの基本:使い方から functools.wrapsの利用まで - Qiita
                                  • Python のデコレーター: ある nakagami の日記

                                    Python 2.4 で導入されたデコレーター。 解説を見てもよくわからん、classmethod なんか使わんし・・・ http://www.itmedia.co.jp/enterprise/articles/0501/24/news034_3.html デコレーターが、classmethod のためだけにあるわけじゃないだろうし、 使い道もあるんだろうけど・・・と思いながらずっと放置してた。 liris さんが思い出したようなので(って↓もう1ヶ月も前!) http://www.liris.org/blog/E6809DE38184E587BAE38197E3819FE38288E38186E381ABE38387E382B3E383ACE383BCE382BF/ 思い直して、僕もデコレーターを使うように頑張ってみた。 「魅力的な Python: デコレーターで魔法を身近に」 http

                                      Python のデコレーター: ある nakagami の日記
                                    • 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 関数 (デコレータ) でプロパティへのアクセサを作る
                                      • サンジョルディフラワーズ ザ・デコレーター オンラインショップ【公式】

                                        ギフトはオーダーメイドで、思いを体現する花や 旬の花と葉物などを組み合わせてお作りします。 お花のデザインに関するご希望はもちろん、伝えたい思いや お渡しのシーン、お届け先様のことや飾られる空間などを、 あなたの言葉でぜひ教えてください。 デコレーターが花でデザインし、オリジナルのギフトに仕立てます。

                                        • トライアンドエラーで学ぶPythonのデコレータ【その1】 - Qiita

                                          本記事について Pythonのデコレータの理解に滅茶苦茶苦しんだので、備忘録的にメモを残します。 もし誰かの役に立てば幸いです。 全2話予定で、本記事は1話目です。 想定する読者 本記事は「デコレータを学んだけど理解できず折れた人」向けの内容となっています というのも、デコレータの理解の前提になるクロージャ、関数内関数、高階関数などの説明は省略しているためです。 注意事項 ・デコレータの理解を優先していること及び筆者の力量不足から一連のサンプルコードは全く実践的なものではありません。申し訳ございません。 ・タイトルに「トライアンドエラー」とある通り、 こうしたい⇒修正してみた⇒あれうまくいかないぞ⇒原因はこれだ⇒うまくいった! という流れを繰り返します。 くどいくらい繰り返します。 他の人に理解してもらうため…というより、そのくらいしないと自分が理解できなかったからです。 要領の良い人にと

                                            トライアンドエラーで学ぶPythonのデコレータ【その1】 - Qiita
                                          • 【Python】「デコレータ」「ジェネレータ」「イテレータ」まぎわらしい用語を見比べてみた - Qiita

                                            それぞれの意味を整理してみる デコレータ すでに存在する関数に対して、処理の追加や変更を行うための機能 Python には以下のデコレータが標準で用意されている @classmethod ・・・ クラスメソッド(インスタンス化しなくても直接呼び出せるメソッド)を定義 @staticmethod ・・・ 静的メソッド(クラスメソッドと同じくインスタンス化せずに呼び出し可能)を定義 @property ・・・ 変更できないプロパティを定義 ジェネレータ リストやタプルと同じ機能を持つオブジェクトを生成することができる機能 リストやタプルと同じように for で取り出すことが可能 イテレータ 要素を1つずつ取り出せるオブジェクト リストにできなくて、イテレータオブジェクトにできる機能は、次の要素を尋ねること それぞれの基本形を見比べる デコレータ 'Before the...' と 'After

                                              【Python】「デコレータ」「ジェネレータ」「イテレータ」まぎわらしい用語を見比べてみた - Qiita
                                            • Pythonのデコレータを作って理解する - Qiita

                                              Pythonでは関数は第一級オブジェクトとして扱われるので、関数を引数にとったり、返り値として返すことができます。 つまり、ここではfugaという関数をつくり、そのfugaを関数を引数にとるhogeに渡して、hogeから返ってきた関数をfugaに割り当てているわけです。 すべてのデコレータはこのような糖衣構文であると理解して問題ないと思います。 基本のデコレータをつくる 上の説明をもとに基本的なデコレータをつくってみます。 def decorator(function): # 関数を引数にとる def retfunc(*args): # うけとった関数を使いながらいろんな処理をする関数をつくる print("デコレートされたよ") return function(*args) # デコレートされる関数 return retfunc # つくった関数を返す @decorator def fu

                                                Pythonのデコレータを作って理解する - Qiita
                                              • New Relic の Node.js agent API でデコレータを使って宣言的に Segment を作成する

                                                Segment とは New Relic の Node.js agent API では Transaction の中をさらに細分化する方法として、newrelic.startSegment(name, record, handler, callback) 関数が用意されています。 この関数は第三引数の handler に関数を渡すことである程度の処理のまとまりについて名前をつけて、New Relic のダッシュボード上で閲覧できるようになります。 以下のコードは https://docs.newrelic.com/jp/docs/agents/nodejs-agent/extend-your-instrumentation/nodejs-custom-instrumentation/#expanding-instrumentation にあるサンプルコードです。 try { const c

                                                  New Relic の Node.js agent API でデコレータを使って宣言的に Segment を作成する
                                                • [Python] 絶対わかるデコレータの説明 - Qiita

                                                  def count_and_sum(func): def wrapper(*args, **kwargs): wrapper.count += 1 result = func(*args, **kwargs) wrapper.sum += result return result wrapper.count = 0 wrapper.sum = 0 return wrapper @count_and_sum def add(x, y): return x + y print(add(1, 2)) # 3 print(add(3, 4)) # 7 print(add(5, 6)) # 11 print("Total count: ", add.count) # 3 print("Total sum: ", add.sum) # 21 @count_and_sumをaddの前に付けると、addが

                                                    [Python] 絶対わかるデコレータの説明 - Qiita
                                                  • サンジョルディフラワーズ ザ・デコレーター オンラインショップ【公式】

                                                    思いを結ぶフラワーギフト サンジョルディフラワーズ ザ・デコレーターオンラインショップ 2023.11.21 年末年始休業期間及びご注文に関するご案内 2023-2024 2023.09.25 福岡市の「一人一花運動」のメディアパートナーに就任しました 2023.09.25 サンジョルディフラワーズ ザ・デコレーター20周年記念イベント「COLOR TRANSFORM」開催 2023.09.25 福岡店 移転に伴う一時休業のお知らせ 2023.05.02 2023年母の日限定コラボレーションギフト 販売のお知らせ お知らせ一覧へ

                                                      サンジョルディフラワーズ ザ・デコレーター オンラインショップ【公式】
                                                    • keyhacのPythonスクリプトにも便利なデコレータ - Koonies/こりゃいいな!

                                                      引き続き、keyhacネタ。keyhacはPythonでスクリプト(設定ファイル)を記述するのでもちろんデコレータも使えます。デコレータの説明はdecorator.htmlが分かりやすかったので、こちらを見ていただくとして早速コードの紹介。 ■ 処理時間計測 上記のサイトで紹介されていたのをちょこっといじったのが、最初に紹介する処理時間計測をするデコレータ。 ・デコレータ from keyhac import * ## 処理時間計測のデコレータ def profile(func): import functools @functools.wraps(func) def _profile(*args, **kw): import time timer = time.clock t0 = timer() ret = func(*args, **kw) print '%s: %.3f [ms]

                                                        keyhacのPythonスクリプトにも便利なデコレータ - Koonies/こりゃいいな!
                                                      • Pythonのデコレータの基礎と応用

                                                        アドベントカレンダー「ほぼ横浜の民」の3日目の記事です。 今年は Python のデコレータについて書いています。かなり雑に説明すると、デコレータとは関数についている @staticmethod や @classmethod のことです。OSS を見ているとカスタムのデコレータもあって、これってどのように機能しているんだろう?と気になることが多くなってきたので少し勉強してみました。 この記事を読んでわかること そもそもデコレータって何? デコレータってどうやって定義するの? 引数付きのデコレータはどうやって定義する? 引数付きのデコレータはなぜネストしている? なぜ functools.wraps を使ってデコレータを定義する必要があるの? 機械学習関連の OSS ではどのように使われている? デコレータとは? デコレータは、関数をラップすることで別の関数を返却する関数です。実際にはクラス

                                                          Pythonのデコレータの基礎と応用
                                                        • Python でデコレータを使って関数の計算結果をキャッシュする

                                                          同じ入力に対して常に同じ結果を返すような冪等性を持った関数であれば、計算結果をキャッシュすることで高速化を図れる。 そのために、元の関数を変更することなく計算結果をキャッシュできるようにするデコレータを書いてみる。 #!/usr/bin/env python # -*- coding: utf-8 -*- import time # 計算時間を測るストップウォッチ class Stopwatch(object): def __init__(self): self.start_time = None self.end_time = None self.processing_time = None # 計測開始 def start(self): self.start_time = time.time() # 計測終了 def stop(self): self.end_time = time.t

                                                            Python でデコレータを使って関数の計算結果をキャッシュする
                                                          • KOSHIGOE学習帳 - [python]デコレータ構文

                                                            関数やメソッドの結果をデコレートする際に、Python2.4から以下の構文を利用出来る。 Python 2.4 クイックリファレンス ITmedia エンタープライズ:2.4への機能強化で広がるPythonの世界 (3/4) @decorator def func(): ... @decorator(args) def func(): ... デコレート対象の関数の直前の行にデコレータを置く デコレータは複数並べる事が出来る デコレータは第1引数に関数をとる関数 デコレータは引数をとる事が出来る デコレータは関数作成時に実行される 関数の実行時ではない 以下の記述は等価である。 @decorator def func(): ... def func(): ... func = decorator(func) コード def decorator1(f): f.decoration = '*-

                                                            • Pythonで、unittest.mock.patchを使ってデコレータを差し替える - メモ的な思考的な

                                                              同僚と話している中で、unittest.mock.patchを使ったデコレータの差し替えに関する話題が出ました。 そういえばデコレータは差し替えたことがなかったため、試してみたことをメモします。 なお、「テストファイル群に、デコレータを差し替える/差し替えないものが混在している場合」で使った方法は強引な気がします。そのため、もしより良い方法をご存じであればご指摘ください。 目次 環境 用意したデコレータとプロダクションコード 引数なしのデコレータを差し替える 引数ありのデコレータを差し替える ダミー処理をするデコレータに差し替える デコレータの差し替え有無が混在する複数のテストファイルを同時に実行する場合 ソースコード 環境 Python 3.6.1 pytest 3.0.7 テストランナーとして使用 用意したデコレータとプロダクションコード デコレータとは、関数に処理を追加するためのシン

                                                                Pythonで、unittest.mock.patchを使ってデコレータを差し替える - メモ的な思考的な
                                                              • Python のデコレータはクラスも修飾できる

                                                                Python のデコレータはメソッドとか関数だけじゃなく、クラスも修飾できると知ったので試してみた。 AOP 的なことができないかなと。 サンプルは、修飾したクラスの public な全てのメソッドをラップして、前後に print 文を仕込むというもの。 #!/usr/bin/env python # -*- coding: utf-8 -*- from functools import wraps import types import re def interceptor(clazz): # 隠しプロパティか名前から判断する def _is_property_hidden(property_name): hidden_property_name_pattern = '^_' regex_pattern = re.compile(hidden_property_name_pattern)

                                                                  Python のデコレータはクラスも修飾できる
                                                                • Python のデコレータがうらやましい - present

                                                                  先日、C# でメソッドのメモ化に挑戦しました。 C# でクラスのメソッドを無理やりメモ化 - present ラムダ式を使って、出来るだけメソッドの定義に近い形にしています。それでも漂う無理やり感。完全に消すことは無理だった……。 話は変わって、Python にはデコレータという構文があります。デコレータを使えば、C# で無理やり行ったメモ化を、スマートに記述できます。百聞は一見にしかず。 # 関数をメモ化する関数 def memoization(method): cache = {} def memo(name): try: return cache[name] except: cache[name] = method(name) return cache[name] return memo # C# の属性みたいな記述で関数をメモ化できる @memoization def greet(

                                                                    Python のデコレータがうらやましい - present
                                                                  • TypeScriptでデコレータを学ぼう! | セルフノート

                                                                    デコレータとは デコレータは、開発者同士で使いやすい機能を提供しあうことに向いています。 百聞は一見に如かずということで、簡単なデコレータを書いてみましょう。 クラスの定義 最初に、デコレータを設定するクラスを定義します。 // Book Classを定義 class Book { title = "Harry Potter"; constructor() { console.log("Creating Book Object..."); } } const b = new Book()

                                                                      TypeScriptでデコレータを学ぼう! | セルフノート
                                                                    • フラワーデコレーターの資格と仕事

                                                                      フラワーデコレーターの資格と仕事では、フラワーデコレーターの仕事の内容と、資格の種類、資格取得の方法を紹介しています。 フラワーデコレーターとは あまり耳慣れない言葉かもしれませんが、そんなフラワーデコレーターというのはどのような仕事内容のものなのでしょうか。 その部分が気になっている人も多いかもしれませんが、 フラワーデコレーターというのは言うなればお花を飾りつけるお仕事です。 花束一つを取ってみてもお花同士の相性や色合いの問題などがあります。 ですので、そうしたお花の見栄えを考えてお花をデコレーションする、 それがフラワーデコレーターの仕事内容となっているのですが、 そんなフラワーデコレーターは資格を取得しなければフラワーデコレーターとして働く事は出来ないのです。 ですから、フラワーデコレーターとして働くためにはまずはフラワーデコレーターの資格を取得しなければならないので

                                                                      • デコレータ - aodagの日記

                                                                        Pythonにはデコレータ構文がある。 関数を他の関数で包んで、機能を追加するのが(使う分には)簡単にできる構文だ。 TurboGearsでは、テンプレートの指定や入力チェック、認証チェックなどをデコレータで行うようになっている。 詳しい説明は以下の資料で。 http://www.nasuinfo.or.jp/FreeSpace/kenji/sf/python/virtualMachine/decorator.htm デコレータを実際に作る方法も上記資料で詳しく述べられているが、Python2.5から使えるfunctools.partialを使った方法を検討してみた。 まず、クロージャだけで実現させる例。 二重にクロージャ書くのがだるい。っていうか分かりにくい 関数をうけとって関数を返す関数を返す? def trace(before, after): def decorate(func):

                                                                          デコレータ - aodagの日記
                                                                        • reduxの@connectをデコレーター構文そのままにテストする(webpackの場合) - Qiita

                                                                          問題 react-reduxの@connectが定義された要素をテストしようとすると、 以下の様なエラーになって実行する事が出来ません。 Invariant Violation: Could not find "store" in either the context or props of "Connect(Login)". Either wrap the root component in a , or explicitly pass "store" as a prop to "Connect(Login)". 対策(公式) これはリファレンスのWriting Testsでも言及されていて、 decoratorを外して、connectされていないオブジェクトをテストする事を推奨されています。 // In order to be able to test the App componen

                                                                            reduxの@connectをデコレーター構文そのままにテストする(webpackの場合) - Qiita
                                                                          • DjangoでViewのデコレーターをurls.pyに書くと一覧性が高くなる - Qiita

                                                                            DjangoでViewのデコレーターは通常views.pyに書きますが、これをurls.pyに書くようにすると一覧性が高くなるのでお勧めです。 通常の使い方(views.pyでデコレーターを指定) 複数のViewがあって各Viewの実装が大きくなってくると、どのViewにどんなデコレーターが指定されているのかが確認しにくくなってきます。 def view1(request): : # 長〜い処理 : @login_required @staff_member_required def view2(request): : # 長〜い処理 : @login_required @has_permission('xxx') def view3(request): : # 長〜い処理 : @login_required @has_permission('xxx') def view4(request

                                                                              DjangoでViewのデコレーターをurls.pyに書くと一覧性が高くなる - Qiita
                                                                            • [Python]デコレータを理解する

                                                                              デコレータは関数やクラスの前後に処理を追加するものですが、その動きや書き方がいまいち腑に落ちず、放置していました。 しかし、DjangoやFlaskなど、他のパッケージを触っていると出てきますし、よくわからないまま触るのも気持ちが悪く、この際ちゃんと理解しようと思ってまとめました。

                                                                                [Python]デコレータを理解する
                                                                              • 花の資格を取るならFDAフラワーデコレーター協会

                                                                                新型コロナウイルス感染拡大防止に向けたフラワーデコレーター協会及びFDAフラワースクールの業務体制、受付対応変更のお知らせ

                                                                                  花の資格を取るならFDAフラワーデコレーター協会
                                                                                • Pythonでデコレーターを継承先にも適用する2 - タロスカイ株式会社

                                                                                  こんにちは、Pythonエンジニア見習いです。 Pythonでデコレーターを継承先にも適用する のデコレーターを継承先にも適用する方法に欠陥を発見したのでそれがどのようなものなのか 解説していきたいと思います。さらにその代替方法についても紹介します。 なぜクラスの__new__関数を用いる方法ではダメなのか まず、Pythonのクラスに書かれた__new__関数はそのクラスのインスタンスが 生成されるたびに 実行されます 。これにより本来であれば各サブクラスごとに一回デコレーターを適用したい場面で デコレーターがインスタンス生成ごとに適用されてしまいます。わかりやすいように以下に例を示します。 まず、以下に示すようにpythonのクラスや関数が定義されているとします。 def deco(f): @functools.wraps(f) def inner(*args, **kwargs):

                                                                                    Pythonでデコレーターを継承先にも適用する2 - タロスカイ株式会社