LoginSignup
8
10

More than 3 years have passed since last update.

他人が書いたPythonコードが解読しにくかったら(Python)

Last updated at Posted at 2015-06-25

他人が書いた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

8
10
2

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
8
10