任务是创建一个类的"cookie罐",可以容纳0 - 12个cookie。不幸的是,我一直得到一个错误的Check50,但我不能找出原因。
:( Jar's constructor raises ValueError when called with negative capacity
expected exit code 0, not 1. Any hint would be greatly appreciated.
class Jar:
def __init__(self, capacity=12):
self.capacity = capacity
self.size = 0
def __str__(self):
return '🍪' * self.size
def deposit(self, n):
self.size += n
if self.size > 12:
raise ValueError('Too many')
def withdraw(self, n):
self.size -= n
if self.size < 0:
raise ValueError('Invalid Capacity')
@property
def capacity(self):
return (self._capacity)
@property
def size(self):
return (self._size)
@capacity.setter
def capacity(self,capacity):
self._capacity = capacity
@size.setter
def size(self,size):
self._size = size
我已经进行了广泛的搜索,我感到困惑,因为一个大于12的值被设置为就像小于0一样,但我得到了不同的check50结果。
2条答案
按热度按时间guykilcj1#
我想你误解了这两个功能。
我猜想如果初始容量小于零(或者,实际上小于1,因为一个根本装不下任何cookie的jar有什么用?)或者大于12,
__init__
应该会引发一个错误,但是您的函数根本没有验证这个值。并且在
deposit
中,您不应该检查cookie的数量是否大于12;你应该检查它是否大于self.capacity
,因为这个cookie罐的容量可能小于12。5f0d552i2#
我认为您应该在lines这几行中使用self._capacity或self._size