Python除以零错误

时间:2012-11-30 13:36:42

标签: python divide-by-zero

我在python中有一个Class,具有以下属性:

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

这当然会抛出零误差:

  

ZeroDivisionError:整数除法或模数为零

我的想法是我稍后会增加number1和number2,但是self.divided会自动更新吗?如果是自动更新,那么如何解决零错误?感谢。

3 个答案:

答案 0 :(得分:14)

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

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

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

答案 1 :(得分:10)

自动更新,避免Ze​​roDivisionError:

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

答案 2 :(得分:0)

如我所示,您可以单独执行以下操作:

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

这可以确保如果您的值为0,则不会出现错误。 但请确保只有在使用大于1的整数值或值时才使用它。