>>> a = 55
>>> b = "hello"
>>> ~a # this will work
>>> ~b # this will fail
对于上面的失败没有真正意外,但假设我想重载〜运算符来处理字符串。我对Python很陌生,所以我做了一些挖掘,发现了一些我无法工作的诱人的建议。我知道我可以创建某种新课程,但我也希望以下工作:
>>> ~"alpha bravo"
这可能吗?如果是这样,怎么样?如何做这种过载?
答案 0 :(得分:1)
不,这在Python中是不可能的。您无法以可靠的方式向内置类型添加新方法。
您可以做的一件事是子类字符串,并定义魔术方法__invert__
。但它不适用于字符串文字,仅适用于您的子类的实例。