在哪里定义了+,-,*等python运算符?我是新手,因此请对此问题提供详细的答案。
每个Python类都有定义其行为的内置方法(可以在名称的开头和结尾用“ __”识别)。例如,在对象上使用print()
时,将调用内置的__str__
函数,并且每个类的功能都不同。您可以使用自己的实现覆盖这些功能。
这里是一个名为CarCollection
的类:
class CarCollection():
def __init__(self, car_list):
self.cars_in_collection = car_list
例如,您想将两个集合一起添加。在此类的两个实例之间使用“ +”将引发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