简介
实现类似于C++的运算符重载,发现还真的简单.
说白了就是面向对象的一些封装思想, 来实现运算符重载,Java实现起来也和这一样简单.
照搬的菜鸟教程,看了两遍,自己就可以畅通地实现了.
代码 (有注释)
# -*-coding:utf-8-*-
class Vector:
# 定义属性
x = 0
y = 0
# 构造器
def __init__(self, x, y):
self.x = x
self.y = y
# 实现重载加法
def __add__(self, other):
self.x += other.x
self.y += other.y
return self
# 以此类推
# __sub__: 减运算
# __mul__: 乘运算
# __truediv__: 除运算
# __mod__: 求余运算
# __pow__: 乘方
# 类似于Java的toString() 方法,在print() 中就是自动调用,类似于Java的System.out.print()
def __str__(self):
x = ('Vector({},{})'.format(self.x, self.y))
return x
if __name__ == '__main__':
# 实例化,并实现加法,其他方法依次类推
v1 = Vector(1, 2)
v2 = Vector(-1, -3)
print(v1 + v2)