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
+、-、* 等 python 运算符在哪里定义?我是新手,所以请详细回答这个问题。
每个 Python class 都有定义其行为的内置方法(可以通过名称开头和结尾的“__”来识别)。例如,当在对象上使用 print()
时,会调用内置的 __str__
函数,并且每个 class 都不同。
您可以使用自己的实现覆盖这些函数。
这是一个名为 CarCollection
:
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