在python中,封装属性时如何使用if条件句,如果不符合if又该如何报出ValueError错误,我们来看代码。
class Rectangle:
def __init__(self,_length,_width):
self._length=_length
self._width=_width
def area(self):
if self._length>0 and self._width>0:
self.area=self._length*self._width
return self.area
# print(f'矩形面积为{self.area}')
else:
raise ValueError('长或宽不得小于等于0')
def perimeter(self):
if self._length>0 and self._width>0:
self.perimeter=self._length*2+self._width*2
return self.perimeter
# print(f'矩形周长为{self.perimeter}')
else:
raise ValueError('长或宽不得小于等于0')
def show(self):
print(f'当矩形的长为{self._length}宽为{self._width}时,则矩形面积为{self.area()}周长为{self.perimeter()}')
a1=Rectangle(10,20)
a1.show()
a2=Rectangle(-9,8)
a2.show()
a3=Rectangle(8,-4)
a3.show()
首先定义了一个矩形类Rectangle,然后编写构造器封装属性长和宽都不用过多介绍了。然后就到了计算面积和周长的时候了。这里把面积和周长封装为函数,使用if条件句判断,如果矩形的长和宽全部大于0时,才可以开始计算,计算过后使用return将计算过后面积和周长的值分别返回到各自的函数中。那么如果长和宽有其一或者全部小于等于0,将无法计算面积与周长。既然if是长和宽全部大于0,那么剩下的就应该是else。
如果想让程序报出ValueError错误,就要在else:后输入raise ValueError(‘此处为自己输入’)。
在计算过周长和面积之后就要将其输出,这里定义了一个函数show用来将矩形的信息全部输出。然后就要对定义的矩形类传参,这里传了三次参,分别是长宽全部大于0、长小于0宽大于0和长大于0宽小于0,下面来看输出的结果
很显然,第一次传入的参数长和宽全部大于零,所及程序计算并输出了该矩形的所有信息,而第二次和第三次分别是长和宽不符合标准,所及程序报出了ValueError错误。