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

2024-06-26 14:02:21 发布

您现在位置:Python中文网/ 问答频道 /正文

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

上面的失败并不奇怪,但是假设我想重载~operator来处理字符串。我对Python还比较陌生,所以我在这方面做了一些挖掘,发现了一些诱人的建议,但我就是无法使用。我知道我可以创建一些新类,但我希望以下内容也能起作用:

>>> ~"alpha bravo"

这可能吗?如果是,怎么做?一个人是怎么做到这种超负荷的?你知道吗


Tags: 字符串alphahellothisoperatorwill建议work
1条回答
网友
1楼 · 发布于 2024-06-26 14:02:21

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

您可以做的一件事是子类化string,并定义神奇的方法__invert__。但它不能处理字符串文本,只能处理子类的实例。你知道吗

相关问题 更多 >