私は「魔法のメソッド」の構文や、Pythonで呼び出されるものなどが本当に好きです。
class foo:
def __add__(self,other): #It can be called like c = a + b
pass
呼び出し
c = a + b
その後、に翻訳されます
a.__add__(b)
「非魔法」関数のそのような動作を模倣することは可能ですか?数値計算では、クロネッカー積が必要であり、次のような「クロネッカー」関数が必要です。
kron(a,b)
実は
a.kron(b)?
ユースケースは次のとおりです。たとえば、行列とベクトルの2つの類似したクラスがあり、どちらもクロネッカー積を持っています。呼びたい
a = matrix()
b = matrix()
c = kron(a,b)
a = vector()
b = vector()
c = kron(a,b)
行列クラスとベクトルクラスは1つの.pyファイルで定義されるため、共通の名前空間を共有します。では、上記のような関数を実装するための最良の(Pythonic?)方法は何ですか?可能な解決策:
1)1つのkron()関数を持ち、型チェックを行います
2)異なる名前空間を持つ
3)?