他人が書いたPythonコードが解読しにくかったら(Python)
・Spyderが使える場合
Editor画面で、その関数名を選択した状態で、^+I(=control +I)を押すと、
Object Inspectorでそのobjectが何であるのかを示してくれる。
それを使うと、その関数についてのドキュメンテーションコメントが表示される。
・Spyderが使えない場合
pythonのコンソールで,
>>> help(関数名)
と実行する。
その場合も、ドキュメンテーションコメントが表示される。
from pylab import *
が実行された後でだと
>>> help(imshow)
Help on function imshow in module matplotlib.pyplot:
imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None,
extent=None, shape=None, filternorm=1, filterrad=4.0, imlim=None, resample=None, url=None, hold=None, **kwargs)
Display an image on the axes.
Parameters
-----------
X : array_like, shape (n, m) or (n, m, 3) or (n, m, 4)
(後略)
のようになります。
Pythonのスクリプトの中で、
ライブラリを利用できるようにする方法は
import ライブラリ名
とする方法と
from ライブラリ名 import 関数名
from ライブラリ名 import *
とする方法とがあります。
import ライブラリ名
とする場合には
ライブラリ名.関数名
で参照されます。
import pylab
pylab.imshow(image)
と
import cv2
cv2.imshow("image title", image)
のように
それぞれのライブラリがimshow()という画像表示関数を持っていても
正しく使い分けることができます。
from pylab import imshow
とした場合には、
imshow()がどのライブラリからきたものががわかりにくくなります。
from pylab import *
とした場合には、
imshow()がどのライブラリをからきたものが
その部分のスクリプトだけからでは
機械的に知る方法はわかりようがなくなります。
from ライブラリ import *
とすると、いつの間にか、意図せずして識別子を書き換えてしまう可能性が
高くなります。
grayという変数名でグレースケール画像を保存しておいたつもりが
pylab.gray()関数で置き換えてしまうことになります。
まとめ:
他人が書いたPythonコードが解読しにくかったら
Spyder統合環境では^+I
Spyder統合環境以外ではhelp(関数名)
を利用する。
pycodestyle を使って、コーディングスタイルのチェックを行う。
それによって可読性の向上のための書き換えをしていこう。
pycodestyle – 1つのPythonファイル シンプルなPythonスタイルチェッカー
type hintを利用しよう。
https://docs.python.org/ja/3/library/typing.html