首页 > 解决方案 > 你如何在 Python 类中为有价值的输入提出 ValueError?

问题描述

我想为 a 和 b 的负值引发一个值错误。我玩过这个,但它会针对不同的值引发 ValueError 并且它似乎无法正常工作。

class RightTriangle:
    def __init__(self, a, b):
            self.a = a
            self.b = b
            self.c = np.sqrt(a**2+b**2)

            if (self.a or self.b) < 0:
                raise ValueError("Negative")

标签: python

解决方案


使固定:

if self.a < 0 or self.b < 0:

你得到的是(self.a or self.b)首先评估。第一部分正在做的是:

if self.a: # anything but 0 is True
    return self.a
else:
    return self.b

因此,您可能会得到self.a大部分时间,然后将在< 0.


推荐阅读