【发布时间】:2015-01-23 13:21:45
【问题描述】:
很奇怪的问题,但是否有可能重载某些括号类型的含义,例如<, >, [, ] and | 在 Python 中。例如,如果我有一些对象实例MyObj1 和MyObj2,我是否可以设计一些东西,从而将<MyObj1 | MyObj2 > 理解为MyObj1 中的方法调用?
我认为它可能不能/不应该做,但我想我会问!
【问题讨论】:
-
Uhhhhh... 为什么? 编辑:另外,不,除非你分叉 CPython 并自己编写代码来支持它,否则这是不可能的。
-
虽然你可以重载操作符,但是你不能改变它们的arity。
<和>都是需要两个操作数的二元运算符,即使您重载它们也是如此。 -
是的,我认为这可能有点遥远,但通过快速解释,我想写一些东西来方便地以语法相似的方式计算 Bra-Kets (en.wikipedia.org/wiki/Bra%E2%80%93ket_notation)跨度>
标签: python operator-overloading overloading