Python: 定义自己的运算符?

110 投票
6 回答
77832 浏览
提问于 2025-04-15 11:57

我想定义我自己的运算符。Python支持这样做吗?

6 个回答

50

不,Python自带了一套预定义的运算符,这些运算符是可以被覆盖的。你可以在这里查看这套运算符的详细信息:运算符与函数的对应关系

218

虽然从技术上讲,你不能在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
42

不,你不能创建新的运算符。不过,如果你只是想计算表达式,你可以自己处理字符串,然后计算出新运算符的结果。

撰写回答