我真的很喜欢“魔术方法”的语法或者它们在 Python 中被调用的任何东西,比如
class foo:
def __add__(self,other): #It can be called like c = a + b
pass
通话
c = a + b
然后被翻译成
a.__add__(b)
是否可以为“非魔法”功能模仿这种行为?在数值计算中,我需要 Kronecker 产品,并且渴望拥有“kron”函数,这样
kron(a,b)
实际上是
a.kron(b)?
用例是:我有两个相似的类,比如矩阵和向量,它们都有 Kronecker 积。我想打电话给他们
a = matrix()
b = matrix()
c = kron(a,b)
a = vector()
b = vector()
c = kron(a,b)
矩阵和向量类定义在一个 .py 文件中,因此共享公共命名空间。那么,实现上述功能的最佳(Pythonic?)方法是什么?可能的解决方案:
1) 拥有一个 kron() 函数并进行类型检查
2)有不同的命名空间
3) ?