【问题标题】:Possible to pass a function into a object's method as an argument, which can refer to that object?可以将函数作为参数传递给对象的方法,该参数可以引用该对象吗?
【发布时间】:2016-09-05 16:17:56
【问题描述】:
def my_func():
stuff
return something
my_object.my_method(my_func)
我希望 my_func 能够引用 my_object。本质上类似于 deferred self,意思是“无论我在哪个对象中,都参考那个”
【问题讨论】:
标签:
python
python-2.7
functional-programming
self
function-object
【解决方案1】:
您可以使用 inspect 模块
import inspect
def my_func():
stuff
my_object = inspect.stack()[1][0].f_locals["self"]
return something
但是,我想更简单的方法是将实例作为参数传递,例如
def my_func():
stuff
return something
my_object.my_method(my_func, caller=my_object)