如何解决为什么有人会使用 set.remove() 而不是 set.discard()
我目前正在学习 Python,我只是想知道在什么情况下从 .remove()
中删除值时会使用 .discard()
而不是 set
。由于 .discard()
在从集合中移除元素时不会引发错误,如果该元素不存在,那么使用它不是更好吗?
解决方法
引发错误以被捕获和处理。它们不是烦恼或障碍。它们是识别概念错误的工具,或指示需要注意的意外行为,或处理无法控制的系统部分,或用于控制 python 中的代码流学说说“失败而不是测试”,即让代码引发您期望的异常,而不是使用 if 语句进行测试。
在 .discard()
和 .remove()
的情况下:.discard()
调用 .remove()
静默捕获异常,以防值不存在并静默返回。这是静音 .remove()
的捷径。它可能适合您的特殊用例。其他用例可能需要在值不存在时引发异常。
因此 .remove()
是让开发人员控制异常的一般情况,而 .discard()
只是开发人员不需要捕获该执行的特殊用例。
就像你说的 .discard() 方法不会引发任何错误,另一方面 .remove() 方法会。所以这要视情况而定。如果您不想使用 try-except 块捕获 ValueError 对其他内容所做的操作,则可以使用丢弃方法。
,好吧,每种方法在不同情况下都有自己的用途。
例如,您想创建一个程序,该程序接受用户的输入,并且可以添加、删除或更改数据。然后,当用户选择 remove 选项并假设它输入了一个不在数据中的值时,您想告诉他它不在数据中(最有可能使用 try - except
),您想使用remove() 函数而不是 .discard()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。