【发布时间】:2012-07-09 07:41:34
【问题描述】:
我真的很喜欢“魔法方法”的语法或任何它们在 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)?
用例是:我有两个相似的类,比如矩阵和向量,它们都有克罗内克积。我想打电话给他们
a = matrix()
b = matrix()
c = kron(a,b)
a = vector()
b = vector()
c = kron(a,b)
矩阵和向量类定义在一个 .py 文件中,因此共享公共命名空间。那么,实现上述功能的最佳(Pythonic?)方法是什么?可能的解决方案:
1) 拥有一个 kron() 函数并进行类型检查
2) 有不同的命名空间
3) ?
【问题讨论】:
标签: python magic-methods multiple-dispatch