読者です 読者をやめる 読者になる 読者になる

Works by ...

プログラミング関連でメモする

【python】"import *" でインポートされるモジュールを制限する

パッケージ中の__init__.py内で__all__変数を書き換えることで、import *でimportするモジュールを制限することができます。 __all__ = ["hoge", "fuga", "piyo"] このような記述を例えばpackage/__init__.pyが含むとき、 from package import *によってimpo…

【python】ユーザクラス定義時の==比較定義__eq__()と!=比較定義__ne__()

友人にちらと聞いたpython話のメモです。 pythonのユーザ定義クラスでは、Javaでequals()メソッドをオーバライドするように、同値(または同一)比較の再定義をすることができます。これはpythonの特殊メソッド(今まで組み込み関数と混同してました・・・)…

【python】関数呼び出しとメソッド呼び出しの速度を比較する

前々から気になっていた、関数呼び出しとメソッド呼び出しの速度比較の結果をやってみた。 あまり厳密ではないけれど・・・ import time import numpy as np # 適当なクラス class Hoge: # 適当なメソッド def hoge(self): print ('hoge') # 適当な関数(Hoge…

【Python】実引数として渡すリストのアンパック

Python書いてて初めて知ったのでメモ。 関数に引数を渡すとき、以下のようにリストが格納された変数の頭に"*"をつけることで、 リストがアンパックされて引数の羅列として扱えるらしい。 import math # 極座標系に変換 def polar_coordinates(x, y): r = mat…

【Python】IPythonをつかう

IPython Pythonをインストールすると、標準のインタラクティブシェルがすでに使えるようになっているが、 別のPythonインタラクティブシェルであるIPythonを使うとより快適にPythonコードを実行できる。 インストール pip install ipython んで $ ipython2 b…

【python】デコレータ

pythonにはデコレータ構文が標準で実装されている。デコレータを使うことで、既存の関数に対し簡単に別の機能を付加(デコレート)することができる。 例えば、以下の様なコードを書いたとする。 def cake(): print("cake") cake() とくれば、もちろん出力は…