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

时间:2016-05-27 18:26:51

标签: python-3.x overloading built-in

是否可以在Python 3中为内置类重载运算符?具体来说,我想要为request类重载+ / +=(即:__add__运算符,以便我可以执行诸如{{}之类的操作1}}。

1 个答案:

答案 0 :(得分:1)

您无法更改str的{​​{1}},但可以定义如何将您的类添加到字符串中。不过我不推荐它。

__add__

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不知道如何处理添加,则Python会尝试"asdf".__add__