可以将函数作为参数传递给对象的方法,可以引用该对象吗?

时间:2016-09-05 16:17:56

标签: python python-2.7 functional-programming self function-object

def my_func():
    stuff
    return something

my_object.my_method(my_func)

我希望my_func能够引用my_object。基本上就像延迟self,意思是“我所处的任何对象,请参考”

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

你想制作一个callback

here是设计模式中回调的用法。