在代码的改造过程中,因为忽略了一个问题导致数据异常,在改造的过程中以及后续的review中都没注意到这个问题,单元测试也没有覆盖到,记录如下。这个坑在于all的使用上,如果参数为空元组或空列表时,返回值为True,这是要特别注意的地方。改造时忽略了这个地方,应该这样写就对了:

  if not codexes or codex in codexes

原代码:

result = set()
for student_id, codex in rs:
conditions = []
if codexes:
conditions.extend([codex in codexes])
if all(conditions):
result.add(student_id)
return result.intersection(set(student_ids))

新代码改为如下引出问题:

result = set()
for student_id, codex in rs:
if (codexes and codex in codexes):
result.add(student_id)
return result.intersection(set(student_ids))

修补后正确应该为:

result = set()
for student_id, codex in rs:
if not codexes or codex in codexes:
result.add(student_id)
return result.intersection(set(student_ids))

最新文章

  1. Opencv算法学习二
  2. 关于STM32-MDK中preprocessor symbols解释
  3. MongoDB Shard部署及Tag的使用
  4. CentOS5下配置JDK1.6+TOMCAT6
  5. JSF 2 multiple select dropdown box example
  6. leetcode 逆转字符串 当年的第一题,今天再写一遍,物是人非
  7. AngularJS之使用控制器封装业务逻辑
  8. HTML确认密码
  9. Java 容器在实际项目中的应用
  10. Linux学习历程——Centos 7 账户管理命令(用户组篇)groupadd groupmod groupdel
  11. 网络知识 - 简易的自定义Web服务器
  12. 蓝牙BLE设备断线回连分析
  13. laravel使用JSON 类型方式进行存储
  14. SpringBoot返回json格式到浏览器上,出现乱码问题
  15. [LeetCode] 96. Unique Binary Search Trees(给定一个数字n,有多少个唯一二叉搜索树) ☆☆☆
  16. 如何利用javascript获取表单中select下拉列表中所选中项的值value
  17. Java多媒体编程应用
  18. Servlet MVC 项目实战实例
  19. 【CodeForces】870 F. Paths
  20. 错误:undefined reference to `__gxx_personality_v0'

热门文章

  1. Jenkins email-ext邮件通知模板
  2. POJ - 3062 Borg Maze
  3. 屏幕的尺寸(厘米)、屏幕分辨率(像素)、PPI它们之间是什么关系
  4. php basename()文件夹 路径 文件后缀名 读取pathinfo()
  5. opencart配置税率
  6. Html基础详解之(jquery)之二
  7. WiresShark 图解教程1
  8. SQL模擬死結產生
  9. WordPress常用插件
  10. 关于Application.Lock…Application.Unlock有什么作用?