首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为Python类中有价值的输入提升ValueError?

如何为Python类中有价值的输入提升ValueError?
EN

Stack Overflow用户
提问于 2020-10-21 00:22:37
回答 1查看 34关注 0票数 0

我想为负值的a和b引发一个值错误。我已经尝试过这个问题,但是它为不同的值引发了ValueError,而且它似乎不能正常工作。

代码语言:javascript
复制
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")
EN

回答 1

Stack Overflow用户

发布于 2020-10-21 00:25:31

修复:

代码语言:javascript
复制
if self.a < 0 or self.b < 0:

您得到的是首先评估(self.a or self.b)。第一部分做的是这样的:

代码语言:javascript
复制
if self.a: # anything but 0 is True
    return self.a
else:
    return self.b

所以,你可能大部分时间都会得到self.a,然后在< 0中进行比较。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64449331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档