python - 覆盖模拟对象的“is”运算符
问题描述
简化代码:我有一个函数,它需要一个数字或 None,True
如果它是,则返回None
,False
如果它是一个数字,例如:
def function(var):
return var is None
我想传递一个模拟对象并使用这样的is
运算符对其进行测试:
from unittest.mock import Mock
mock = Mock(return_value=None)
assert function()
尽管我将值嘲笑为 ,但这将失败None
。根据文档,有许多受支持的魔术方法,但没有一个让我实现这种情况的行为。
更改为assert mock == None
可以让我使用__eq__
运算符,但我不想触摸代码(显然使用is
比==
根据这个答案更快)
解决方案
推荐阅读
- c++ - OpenGL绘制一个矩形填充窗口
- sql-server - Insert In 语句卡在循环中
- python - 我收到一个错误:“UnboundLocalError:分配前引用了局部变量'text_to_print'”
- c++ - 模板类是否可以基于参数包从多个父级继承?
- python - pandas 使用 UTC 索引获取列值
- javascript - 在 Laravel + Vue 上 @click 事件时获取旧数据
- javascript - Javascript/Python - 单击网站上的按钮并在 python 中运行函数
- python - 选择列时的Python panda keyerror
- c++ - 如何使用arm64程序集进行浮点运算?
- linux - 在 Linux 上调试 Webkitgtk