是否可以在字符串上重载〜运算符?

时间:2016-09-28 01:17:56

标签: python string overloading operator-keyword

>>> a = 55
>>> b = "hello"
>>> ~a  # this will work
>>> ~b  # this will fail

对于上面的失败没有真正意外,但假设我想重载〜运算符来处理字符串。我对Python很陌生,所以我做了一些挖掘,发现了一些我无法工作的诱人的建议。我知道我可以创建某种新课程,但我也希望以下工作:

>>> ~"alpha bravo"

这可能吗?如果是这样,怎么样?如何做这种过载?

1 个答案:

答案 0 :(得分:1)

不,这在Python中是不可能的。您无法以可靠的方式向内置类型添加新方法。

您可以做的一件事是子类字符串,并定义魔术方法__invert__。但它不适用于字符串文字,仅适用于您的子类的实例。