2024-05-23 14:50:41 发布
网友
我有一个python类,具有以下属性:
self.number1 = 0 self.number2 = 0 self.divided = self.number1/self.number2
这当然会抛出零错误:
ZeroDivisionError: integer division or modulo by zero
我的想法是稍后会增加数字1和2,但是self.divided会自动更新吗?如果它是自动更新的,那么我该如何绕过零错误呢?谢谢。
不,self.divided是一个简单的属性,不会自动更新。对于动态属性,请改用^{}:
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的值时才使用此选项。
不,} :
self.divided
是一个简单的属性,不会自动更新。对于动态属性,请改用^{自动更新,避免零分区错误:
如我所示,您可以一个人完成以下操作:
这样可以确保如果值为0,则不会出现错误。 但请确保,仅当使用整数值或大于1的值时才使用此选项。
相关问题 更多 >
编程相关推荐