我有蟒蛇一類,具有以下屬性:Python的鴻溝零錯誤
self.number1 = 0 self.number2 = 0 self.divided = self.number1/self.number2
這當然引發了零誤差:
ZeroDivisionError: integer division or modulo by zero
的想法是,我將增加以後的number1和number2,但會自動更新自動更新?如果它是自動更新的,那麼我該如何解決零誤差問題?謝謝。
我有蟒蛇一類,具有以下屬性:Python的鴻溝零錯誤
self.number1 = 0 self.number2 = 0 self.divided = self.number1/self.number2
這當然引發了零誤差:
ZeroDivisionError: integer division or modulo by zero
的想法是,我將增加以後的number1和number2,但會自動更新自動更新?如果它是自動更新的,那麼我該如何解決零誤差問題?謝謝。
不,self.divided
是一個簡單的屬性,不會自動更新。對於動態屬性,使用property
代替:
class Foo(object):
number1 = 0
number2 = 0
@property
def divided(self):
return self.number1/self.number2
自動更新ZeroDivisionError迴避:
@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的值時才使用它。
不,不會更新 –