python在材料模拟中的应用_材料模拟python_模拟-python模拟-在不妨碍实现的情况下修补方法...
此答案解决了Quuxplusone用户提供的赏金中提到的其他要求:
对于我的用例而言,重要的是它可以与MagicMock一起使用,即,它不需要我在构造Potato(在此示例中为spud)实例与调用spud.foo(在本例中)之间插入任何代码。我需要2939848654720599599044 从一开始就使用foo的模拟方法来创建,因为我无法控制spud的创建位置。
通过使用装饰器,可以在没有太多麻烦的情况下实现上述用例:
import unittest
import unittest.mock # Python 3
def spy_decorator(method_to_decorate):
mock = unittest.mock.MagicMock()
def wrapper(self, *args, **kwargs):
mock(*args, **kwargs)
return method_to_decorate(self, *args, **kwargs)
wrapper.mock = mock
return wrapper
def spam(n=42):
spud = Potato()
return spud.foo(n=n)
class Potato(object):
def foo(self, n):
return self.bar(n)
def bar(self, n):
return n + 2
class PotatoTest(unittest.TestCase):
def test_something(self):
foo = spy_decorator(Potato.foo)
with unittest.mock.patch.object(Potato, 'foo', foo):
forty_two = spam(n=40)
foo.mock.assert_called_once_with(n=40)
self.assertEqual(forty_two, 42)
if __name__ == '__main__':
unittest.main()
如果替换的方法接受在测试中修改的可变参数,则您可能希望初始化MagicMock *,而不是spy_decorator内部的MagicMock。
*这是我在PyPI上以copyingmock lib形式发布的文档中的食谱
python在材料模拟中的应用_材料模拟python_模拟-python模拟-在不妨碍实现的情况下修补方法...相关推荐
- python在材料模拟中的应用_材料模拟在计算机中使用的软件
材料模拟在计算机中使用的软件 材料模拟简介 首先, 材料模拟是在传统材料设计上发展出来的技术. 传统的材料设计是根 据材料的性质和成分,通过理论计算推出目标材料的结构,然后通过实验合成. 这样的研究是 ...
- python代码在线回归中怎么运行_手把手教你用Python进行回归(附代码、学习资料)...
原标题:手把手教你用Python进行回归(附代码.学习资料) 作者: GURCHETAN SINGH翻译:张逸校对:丁楠雅 本文共5800字,建议阅读8分钟. 本文从线性回归.多项式回归出发,带你用P ...
- python使用matplotlib可视化函数曲线、设置y轴为对数坐标(log scale)、默认情况下坐标轴为线性坐标
python使用matplotlib可视化函数曲线.设置y轴为对数坐标(log scale).默认情况下坐标轴为线性坐标 目录
- python在材料模拟中的应用_基于Python的ABAQUS二次开发及在板料快速冲压成形模拟中的应用...
2009 doi :10 1 3969/ j 1 issn 1 1007 2 2012 1 2009 1 04 1 013 基于 Python 的 ABAQUS 二次开发及在板料快速 冲压成形模拟中的 ...
- 怎么在python中输入矩阵_如何使用NumPy在Python中实现矩阵?
矩阵被用作数学工具,在现实世界中有多种用途.在本文中,我们将按照以下顺序讨论Python中关于使用著名的NumPy库的矩阵的所有内容:什么是NumPy以及何时使用它?在NumPy 矩阵被用作数学工具, ...
- insert 语句的选择列表包含的项多于插入列表中的项_如何定义和使用Python列表(Lists)
Python中最简单的数据集合是一个列表(list).列表是方括号内用逗号分隔的任何数据项列表.通常,就像使用变量一样,使用=符号为Python列表分配名称. 如果列表中包含数字,则不要在其周围使用引 ...
- python 如何判断一个函数执行完成_三步搞定 Python 中的文件操作
当程序运行时,变量是保存数据的好方法,但变量.序列以及对象中存储的数据是暂时的,程序结束后就会丢失,如果希望程序结束后数据仍然保持,就需要将数据保存到文件中. Python 提供了内置的文件对象,以及 ...
- python字典修改键所对应值_详解如何修改python中字典的键和值
我们知道python中字典是无序的,它们都是通过hash去对应的.一般的如果我们需要修改字典的值,只需要直接覆盖即可,而修改字典的键,则需要使用字典自带的pop函数,示例如下: t = {} t['a ...
- python在工程中的应用_将Flash应用于Python项目(转)
lostpencil 2014-4-7 15:43:00 阅读(1737) 评论(4) == 基于本地的Python应用程序 == === 写在之前 === {{{ 这篇所说的是关于建立python调 ...
最新文章
- 前沿科技 | 中科院科学家在视觉学习行为的神经机制研究中取得进展
- win7加入域的脚本
- python3之subprocess常见方法使用
- PyTorch中MaxPool的ceil_mode属性
- win10下,cmd可以运行java,却不能运行javac
- C语言再学习 -- 再论内存管理
- Self-training在目标检测任务上的实践
- ECCV 2018最佳论文解读:基于解剖结构的面部表情生成
- 福爆 | 博客升级 .NET Core 3.0 又踩一坑
- my97DatePicker 自定义扩展方法(实现备忘录)
- [跟我学中小企业架构部署]之八:备份服务器部署
- python优先级排序_Python Numpy重新排列双向排序
- SSE指令介绍及其C、C++应用 zz
- 51单片机 呼吸灯 七彩呼吸灯
- 2016民用安防2.0时代重新起航
- 如何用Python获取网页指定内容
- 中国慕课moocpython答案_中国大学慕课moocPython编程基础答案
- 2020数学建模国赛A题解题思路
- vue v-for遍历动态展示元素数量
- 音视频+5G,远程医疗实时音视频解决方案