首页 > 解决方案 > 实例方法作为函数对象

问题描述

我需要将实例方法作为参数传递给函数:

class C(object):
    def m(self):
        print("m",self)

def f(l,b):
    for z in l:
        b(z)

x = C()

f([x], lambda c: c.m())

有没有比这个更好的方法lambda

看起来这f([x], C.m)也有效,但这是意外还是官方功能?

标签: pythonpython-3.xfunctionmethods

解决方案


你可以这样做:

f([x], C.m)

这里,C.m是没有实例的方法。它和你的 lambda 做同样的事情。这绝对是官方支持的功能。


推荐阅读