LoginSignup
1
2

More than 5 years have passed since last update.

ライブラリseeを使った、メソッドや変数の確認

Posted at

Pythonのライブラリseeの紹介

seeは、ライブラリ内のメソッドや変数を確認する時に便利なので重宝してます。
新しくライブラリを入れた時にちゃんとメソッドがすべて入ってるかどうかの確認に使ったり、クラスがどんな変数を持ってるのか確認する時に便利です。

使い方

調べればすぐに出てくると思うので導入方法は割愛します。
基本的に、スクリプトには書かずに、terminal上(Mac OSX, Yosemite)で自分は使います。
ソースはこちらhttps://github.com/araile/see/blob/develop/see.py

check.
$ 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_filterfnは、fnmatchのことです。なので、この関数は名前の通りfnmatchfilterをかけてるだけです。
下記に簡単な例を出します。1個目は変数、2個目は関数のみ出力するものになっています。
最初に.がついているのは、repr()+などがライブラリによっては混じるので入れています。

test_fn_filter.
>>> 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.matchfilterをかけて、タプルで出力します。
なので、第一引数はfn_filter同様のもの、第二引数には正規表現を与えます。
基本的に、
fn_filter`と同じ使い方なので説明を省略します。

使い分け

個人的には、fn_filterの方は、関数、変数を見たい時、regex_filterはある文字列を含むものを見つけたい時に使います。

説明しなかったものはソースコードを見ればわかると思います。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2