我在这里写了一个函数:
def addItem(aBookcase, name, mediaType):
"""
Returns False if aBookcase is full, otherwise returns True and
adds item of given name and mediaType to aBookcase.
"""
pass
emptySpacesBefore = aBookcase.getEmptySpaces()
if aBookcase.getEmptySpaces() == 0:
added = False
return added
else:
position = findSpace(aBookcase)
aBookcase.setName(*position, name=name)
aBookcase.setType(*position, mediaType=mediaType)
added = True
emptySpacesAfter = aBookcase.getEmptySpaces()
assert added is True, "No free positions"
assert emptySpacesAfter < emptySpacesBefore, "Same amount of empty spaces"
assert aBookcase.getName(*position) is name, "Error with name"
assert aBookcase.getType(*position) is mediaType, "Error with media type"
但是当我用这行代码测试该功能时:
assert addItem(small, "Algorhythms, date structures and compatibility", BOOK)
我收到“AssertionError”,如下所示:
所以,如果我是对的,这意味着我没有处理它,但我不确定如何或为什么?我的代码有问题吗?缺少什么吗?等等
最佳答案
当它正常工作时,您的 addItem
函数不会返回任何内容,因此它返回 None
,这被最后一个 assert
视为失败您插入的声明。对于这两种情况(True
或 False
),您都应该返回 added
顺便说一句,自从您到达该行后,这意味着之前的所有断言都正常,所以好消息:您的代码正常。
关于python - 为什么我在这段 Python 代码上遇到断言错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40898165/