Pythonのライブラリseeの紹介
seeは、ライブラリ内のメソッドや変数を確認する時に便利なので重宝してます。
新しくライブラリを入れた時にちゃんとメソッドがすべて入ってるかどうかの確認に使ったり、クラスがどんな変数を持ってるのか確認する時に便利です。
使い方
調べればすぐに出てくると思うので導入方法は割愛します。
基本的に、スクリプトには書かずに、terminal上(Mac OSX, Yosemite)で自分は使います。
ソースはこちらhttps://github.com/araile/see/blob/develop/see.py
$ python
Python 2.7.10 (default, Jul 14 2015, 19:46:27)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import see
>>> see.see(see)
help() .PY_300 .PY_301 .SYMBOLS .SeeError()
.fcntl .fn_filter() .fnmatch .inspect .line_width()
.re .regex_filter() .see() .struct .sys
.term_width() .termios .textwrap
こんな感じで、簡単にライブラリ内に何が入っているか確認できます。
出力を見てみると、.re .fnmatch .sys
等の標準ライブラリを使ってることがわかります。()
がついてるものはメソッド、ついてないものは変数なので、とてもわかりやすいです。
引数の情報等があれば、もっと良いのですが...
ライブラリseeに入っているよく使う関数
個人的によく使うものは.fn_filter()
と.regex_filter()
です。
fn_filter(names, pat)
は、単純に、第一引数にイテレーションを回せるもの、第二引数にpatternを入れます。
第一引数は、普通にsee.see(see)
を入れると、上記の出力が渡されます。第二引数には、ShellScriptでつかう正規表現?を入れればそのpatternに合ったものがタプルで帰ってきます。
ちなみに、fn_filter
のfn
は、fnmatch
のことです。なので、この関数は名前の通りfnmatch
でfilter
をかけてるだけです。
下記に簡単な例を出します。1個目は変数、2個目は関数のみ出力するものになっています。
最初に.
がついているのは、repr()
や+
などがライブラリによっては混じるので入れています。
>>> see.fn_filter(see.see(see), '.*[0-9a-zA-Z]')
('.PY_300', '.PY_301', '.SYMBOLS', '.fcntl', '.fnmatch', '.inspect', '.re', '.struct', '.sys', '.termios', '.textwrap')
>>> see.fn_filter(see.see(see), '.*)')
('.SeeError()', '.fn_filter()', '.line_width()', '.regex_filter()', '.see()', '.term_width()')
次に、regex_filter()
こちらも、名前の通り、regex は regular expression のことです。
標準ライブラリre
にあるre.match
でfilter
をかけて、タプルで出力します。
なので、第一引数はfn_filter
同様のもの、第二引数には正規表現を与えます。
fn_filter`と同じ使い方なので説明を省略します。
基本的に、
使い分け
個人的には、fn_filterの方は、関数、変数を見たい時、regex_filterはある文字列を含むものを見つけたい時に使います。
説明しなかったものはソースコードを見ればわかると思います。