我想定义自己的运算符。python支持这样的事情吗?
4 回答

沧海一幻觉
TA贡献1824条经验 获得超5个赞
从技术上讲,您无法在Python中定义新的运算符,但这种巧妙的技巧可解决此限制。它允许您定义像这样的中缀运算符:
# simple multiplication
x=Infix(lambda x,y: x*y)
print 2 |x| 4
# => 8
# class checking
isa=Infix(lambda x,y: x.__class__==y.__class__)
print [1,2,3] |isa| []
print [1,2,3] <<isa>> []
# => True

大话西游666
TA贡献1817条经验 获得超14个赞
如果打算将操作应用于特定的对象类别,则可以覆盖与您的函数最接近的运算符...例如,覆盖__eq__()
将覆盖==
运算符以返回所需的任何内容。这几乎适用于所有运营商。
添加回答
举报
0/150
提交
取消