我正在尝试将一个函数分配给另一个函数,分配的左侧可以作为字符串使用。例如我正在寻找的方法的主体是
def change_function_defintion(name_of_function = 'module1.function1'
, function_object):
# Can I do eval(name_of_function) = function_object ? will that work?
pass
Run Code Online (Sandbox Code Playgroud)
问题:
我认为使用像Mock这样的模拟库会更好。使用patch
您可以在上下文管理器或函数的范围内更改函数的行为,然后将其恢复正常。例如:
from mock import patch
with patch('module1.function1') as function1:
function1.side_effect = function_object
# Do stuff
Run Code Online (Sandbox Code Playgroud)
if在块function1
内调用,with
它将被替换为function_object
。
类似地,在函数内打补丁:
@patch('module1.function1')
def my_test(function1):
function1.side_effect = function_object
# Do stuff
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4783 次 |
最近记录: |