我可以为 Python 中的内置 类 重载运算符吗?

Can I overload operators for builtin classes in Python?

是否可以为 Python 3 中的内置 class 重载运算符?具体来说,我想重载 +/+=(即:str class 的 __add__ 运算符,以便我可以执行诸如"This is a " + class(bla).

您无法更改 str__add__,但您 可以 定义如何将 class 添加到字符串。不过我不推荐它。

class MyClass(object):
    ...
    def __add__(self, other):
        if isinstance(other, str):
            return str(self) + other
        ...
    def __radd__(self, other):
        if isinstance(other, str):
            return other + str(self)
        ...

"asdf" + thing中,如果"asdf".__add__不知道如何处理加法,Python尝试thing.__radd__("asdf")