如何将参数绑定到Python方法以存储一个用于以后调用的nullary仿函数?与C++类似boost::bind.
例如:
def add(x, y):
return x + y
add_5 = magic_function(add, 5)
assert add_5(3) == 8
Run Code Online (Sandbox Code Playgroud) 在以下示例中:
class A(object):
pass
prop1 = 1
prop2 = 2
prop3 = 3
prop4 = 4
obj = A()
tmp = ['prop1', 'prop2', 'prop3', 'prop4']
getter = [ lambda: getattr(obj, x) for x in tmp ]
Run Code Online (Sandbox Code Playgroud)
我总是4在打电话给getter:
[getter[i]() for i in range(4)]
#[4, 4, 4, 4]
Run Code Online (Sandbox Code Playgroud)
为什么!?