Python: 関数呼び出し風文字列のパース

2011 年 6 月 25 日 はてなブックマークへ追加 はてなブックマーク - Python: 関数呼び出し風文字列のパース Bookmark this on Delicious

関数呼び出し文字列を解釈する機会があったので、小さなパーサーを書いた。

https://bitbucket.org/yuja/playground/src/tip/python/funparser.py

>>> parse('foo("bar", baz="bax")')
('foo', ('bar',), {'baz': 'bax'})

こんな感じで、関数名・引数・キーワード引数に分解してくれる。 Ruby っぽい表記も OK 。

>>> parse('foo bar => baz')
('foo', (), {'bar': 'baz'})

コマンドラインや LineEdit ウィジットで指定した関数を呼ぶ時に使えると思う。

name, args, kwargs = parse(cmd_edit.currentText())
func = functable[name]
func(*args, **kwargs)

コメント

blog comments powered by Disqus