欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

《流畅的python》1.2笔记

时间:2023-08-23

要写一个模拟向量的类,要满足以下几点:

向量相加时结果还是向量,而且可以被很好的打印出来abs(vector)会返回向量的模向量的数量积

from math import hypotfrom matplotlib.pyplot import scaclass Vector: def __init__(self, x=0, y=0): self.x = x self.y = y def __repr__(self): #重写了repr函数,这样在输出时就不会是对象地址,而是可读的 return F'Vector({self.x}, {self.y})' def __abs__(self): return hypot(self.x, self.y) def __bool__(self): #一般来说,我们自己创建的对象总为真,为了避免bool失去意义,我们便重写了这一函数 return bool(abs(self)) def __add__(self, other): x = self.x + other.x y = self.y + other.y return Vector(x, y) def __mul__(self, scalar): return Vector(self.x * scalar, self.y * scalar)

__bool__方法

默认的bool可以判断内置类型,但对于我们自己创建的对象,它的返回值总是真的。

如果一个对象没有bool属性,在被调用时,会转向len属性,如果len的返回值为0,则返回False。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。