[python] 関数, methodの機能を効率良く調べる方法

この記事では,新しくmoduleを使用するときに使える機能についてまとめていく.動作環境はjupyter notebook上を想定.
OSは,macOS Mojave ver. 10.14.16.

1. ソースコードの確認

moduleの機能を調べる際に一番確実なのは,ソースコードをみてしまうことだ.
moduleの”__init__.py”がどこに存在するかは,jupyter notebook上でmoduleの名前をそのまま書くことで知ることが出来る.

ただ往々にして,知りたいのはmoduleの元のファイルの位置ではなく,特定の関数やmethodの内容である.

jupyter notebook上で “Shift + Tab”

jupyter notebook上で”Shift + Tab”を押すと,関数のSignatureとDocstrin:,それにコメントの部分を見ることが出来る.”Shift + Tab”で簡単な注釈が出る.”Shift + Tab”を押して,”Shift”を押したまま,さらに”Tab”を押すと細かいコメントまで見ることが可能だ.np.sum()の例は以下の通りになる.

また,jupyter notebookではありがたいことに自分で定義した関数に関しても一度cellを回して読み込んでしまうと同様のヘルプを出すことができる.Docstring: は最初に空白行が出来るまでを表示する.例として以下のコードを書いてみると,写真のような表示が出る.

def sampleFunction(a, b= "2"):
    '''
This is sample function.
Test line 1 

Test line 2 
Parameters 
-----------
a   :  any
    just print out with b 
b   :  str 
    just print out with a 
    '''
    print(a,b)

inspect module

inspect moduleを用いれば,functionやmethodを見ることができる.

import inspect 
print(inspect.getsource(np.sum))

だが,この表記だと出力がモノクロになってしまって読みにくい.ということで,ある関数かmethodが入ったファイルを自分の好きなeditorで開きたくなる.これは,”inspect.getfile”で実現可能.

import inspect 
import subprocess 
path = inspect.getfile(np.sum)
subprocess.check_call(["open",path])

2. メソッドの確認

新しいmoduleを学ぶ際に,このclassを使えば良いんだけれども,どんなmethodがあるか知りたい場合は多々ある.そんな時には dir 関数が便利.使えるmethodが表示される.名前から機能を予測出来る場合があるので検索する手間が省ける.

import matplotlib.pyplot as plt
dir(plt)

# 下の画像の生成には,以下のコードを用いた.
" ,".join(dir(plt)) 


また,名前の後に,”.”が続くものを触る時は,ストレートに名前を書いてcellを回してみると,良い情報が手に入ったりする.matplotlib で図の調整の際に使う”plt.rcParams” は良い例.

———-雑感(`・ω・´)———-
基本的な操作だけれども知っとくとすごい便利.グクリ祭りを回避できる.

更に細かいテクニックや便利なコード,Pythonのアーキテクチャを知りたければ,以下の本がオススメだ.

created by Rinker
¥6,380 (2024/11/23 14:05:19時点 楽天市場調べ-詳細)

参考文献

・関数/メソッドのソースコードを確認する (inspect), https://maku77.github.io/python/dev/get-source.html

コメント

タイトルとURLをコピーしました