题解 | #重载运算#
重载运算
https://www.nowcoder.com/practice/342d1b8b0fe3416797bad62d22cbb51a
num_list_1 = input().split() x1 = int(num_list_1[0]) y1 = int(num_list_1[1]) num_list_2 = input().split() x2 = int(num_list_2[0]) y2 = int(num_list_2[1]) class Coordinate(object): def __init__(self, x, y): self.x = x self.y = y def __str__(self): return f"({self.x}, {self.y})" def __add__(self, other): return Coordinate(self.x + other.x, self.y + other.y) c1 = Coordinate(x1, y1) c2 = Coordinate(x2, y2) c = c1.__add__(c2) print(c)
Python中的__str__方法:
- 使用print输出实例对象变量时,默认情况下会输出是由哪个类创建的实例对象以及在内存中的地址
- 实际开发中,如果想要打印自定义的内容,可重写__str__方法,该方法必须返回一个字符串
Python中的__add__方法:
其中,self为c1 other为c2 __add__方法return的是一个新的实例对象c
因为重写了__str__方法,此时print(c)输出的就不再是由哪个类创建的实例对象以及在内存中的地址,而是在__str__方法中自定义的输出内容。
#Python学旅#