如果我在 Python 中设置如下所示的类,因为我希望创建的 lambda 表达式应该绑定(bind)到类 A。我不明白为什么当我将 lambda 放入列表中时,如 g
它没有绑定(bind)。
class A(object):
f = lambda x,y: (x + y)
g = [lambda x,y: (x + y)]
a = A()
#a.f bound
print a.f
<bound method A.<lambda> of <__main__.A object at 0xb743350c>>
#a.g[0] not bound
print a.g[0]
<function <lambda> at 0xb742d294>
为什么一个绑定(bind)而另一个不绑定(bind)?
最佳答案
f
是绑定(bind)的,因为根据定义它是类的一部分。 g
不是方法。 g
是一个列表。这个列表的第一个元素恰好是一个 lambda 表达式。这与 g
是否在类定义中定义无关。
关于python - lambda 表达式如何绑定(bind)到一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6530110/