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

标签 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,这意味着“无论我在哪个对象中,都引用它”

最佳答案

您可以使用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)

关于python - 可以将函数作为参数传递到对象的方法中,该函数可以引用该对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39334408/

相关文章:

python - 如何快速将字典拆分为多个字典

javascript - 以功能方式修改对象的属性

python - matplotlib 将 x 轴上的刻度线命名为 1、2、4、8、16 等

python - SQLAlchemy 等效于 ActiveRecord 中的命名范围

python - 当worker抛出异常时pool.map和pool.imap_unordered之间的区别

Python 类/总是返回 0

haskell - 在用户定义类型和现有类型之间定义已经存在(例如在 Prelude 中)运算符的正确方法是什么?

list - 如何根据列表中的先前值过滤Haskell中的列表元素?

python - 读取带有希腊文件名的文件

python - 使用 os.plock 的真实世界示例?