Python除以零E

2024-05-23 14:50:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python类,具有以下属性:

    self.number1 = 0
    self.number2 = 0
    self.divided = self.number1/self.number2

这当然会抛出零错误:

ZeroDivisionError: integer division or modulo by zero

我的想法是稍后会增加数字1和2,但是self.divided会自动更新吗?如果它是自动更新的,那么我该如何绕过零错误呢?谢谢。


Tags: orselfby属性错误数字integerdivision
3条回答

不,self.divided是一个简单的属性,不会自动更新。对于动态属性,请改用^{}

class Foo(object):
    number1 = 0
    number2 = 0

    @property
    def divided(self):
        return self.number1 / self.number2

自动更新,避免零分区错误:

@property
def divided(self):
    try:
        #suppose that number2 is a float
        return self.number1/self.number2
    except ZeroDivisionError:
        return None

如我所示,您可以一个人完成以下操作:

self.divided = self.number1/(self.number2  or not self.number2)

这样可以确保如果值为0,则不会出现错误。 但请确保,仅当使用整数值或大于1的值时才使用此选项。

相关问题 更多 >