MagicforestA 2022-06-18 22:34 采纳率: 100%
浏览 14
已结题

try-exception的相关问题

class QueueError(IndexError):
pass

class Queue:
def init(self):
self.queue = []

def put(self, elem):
    self.queue.insert(0, elem)

def get(self):
    if len(self.queue) > 0:
        elem = self.queue[-1]
        del self.queue[-1]
        return elem
    else:
        raise QueueError

que = Queue()
que.put(1)
que.put("dog")
que.put(False)
try:
for i in range(4):
print(que.get())
except:
print("Queue error")

output:
1
dog
False
Queue error

在def get(self)函数里,我没有用if-else statement,
直接 elem = self.queue[-1]
del self.queue[-1]
return elem
然后class QueueError(IndexError): 我也没有写
pass

最后output也可以出来1
dog
False
Queue error

请问写class和if-else statement是不是多此一举

  • 写回答

2条回答 默认 最新

  • 关注

    写class和if-else statement不是多此一举
    if len(self.queue) > 0: 是判断栈是不是为空,为空时发出QueueError错误,明确表示触发了一个Queue的错误
    你不写if len(self.queue) > 0: 判断栈,当self.queue栈为空时 self.queue[-1]会触发IndexError: list index out of range错误
    虽然也可以用try except捕获但意义就不一样了

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月27日
  • 已采纳回答 6月19日
  • 创建了问题 6月18日

悬赏问题

  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计