Use the left and right arrow keys or click the left and right edges of the page to navigate between slides. (Press 'H' or navigate to hide this message.)
こちらのスライド。RubyでRubyを拡張する。つまりメタプログラミングの話。 Extending Ruby with Ruby // Speaker Deck メタプログラミングを使って他の言語の機能を実装しようという内容になってる。 Python: Function decorators Scala: Partial application Haskell: Lazy evaluation 今回は、この中でPythonのdecoratorを実装するというのをピックアップ。 githubにソースコードがあがってて、スライド中では未解決になってた問題がすでに解決されている。 michaelfairley/method_decorators ここから載せるコードは、githubの方じゃなくてスライド中のコードに一部手を入れたものになってる。ひとつのメソッドに複数のdecoratorを指定でき
Since getting involved with Python, I’ve read a few discussions about Zope, and though I haven’t used it, I do enjoy reading articles about it, to see how other people approach common problems. In particular, a recent Satchmo discussion pointed me to an article about using Zope3 interfaces to essentially manage plugins. I knew Trac did this, as I had tried to write a Trac plugin a while back, but
先日作ったファイルコピーツールにプラグイン機能を追加する時にも使えるかな。。。と思いながら、簡易プラグイン管理クラスを作ってみました。 クラスの名前はPluginMgrです。(あまりにも安易な名前ですけどね。。) このPluginMgrは以下のことを行います。 ・指定されたディレクトリ中から、モジュールをインポートする。 ・インポートしたモジュールがプラグインとしての条件(必要な関数が存在すること)を満たしている場合には モジュールごとに、関数名と関数オブジェクトの辞書を作成して保持。 ソースコードはこんな感じです。 # -*- coding: utf-8 -*- import os import sys import inspect # # class PluginMgr: ''' プラグイン管理マネージャ。 生成時に指定されたプラグインディレクトリ中から、プラグインプロトコル に適合す
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Pythonのモジュールを動的に読み込んでプラグインとして利用するための簡易な方法。 たとえば,以下のような構成のフォルダがあるとして,mod.pyとpack/__init__.pyにはそれぞれfoo()という関数が書かれているとする。 [plugins]--+ | +- mod.py | +- [pack] --+ | +- __init__.py pluginsディレクトリと同じ位置に以下のスクリプトを置くと,pluginsディレクトリ以下にあるPythonのモジュールやパッケージを動的に読み込み,モジュールオブジェクトとしてリストに格納,モジュールのfoo()という関数を呼び出す
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く