python 运算符在哪里定义?

Where are python operators defined?

+、-、* 等 python 运算符在哪里定义?我是新手,所以请详细回答这个问题。

每个 Python class 都有定义其行为的内置方法(可以通过名称开头和结尾的“__”来识别)。例如,当在对象上使用 print() 时,会调用内置的 __str__ 函数,并且每个 class 都不同。 您可以使用自己的实现覆盖这些函数。

这是一个名为 CarCollection:

的 class
class CarCollection():
    def __init__(self, car_list):
        self.cars_in_collection = car_list

现在,举例来说,您想要将两个集合相加。在这个 class 的两个实例之间使用“+”将引发 TypeError: unsupported operand type(s) for +: 'instance' and 'instance',因此为了将两个集合添加在一起,您需要重写 __add__ 函数:

    def __add__(self, other_car_collection):
        return self.cars_in_collection + other.cars_in_collection

现在,当您将两个集合相加并打印结果时,它将如下所示:

first_collection = CarCollection(["subaru", "ferrari"])
second_collection = CarCollection(["fiat", "renault"])
print(second_collection + first_collection)

输出:subaru, ferrari, fiat, renault