Python lambda表达式如何绑定到类?

Python lambda表达式如何绑定到类?,python,Python,如果我在Python中设置了一个如下所示的类,正如我所期望的那样,创建的lambda表达式应该绑定到类a。我不明白为什么我在g这样的列表中放置lambda时,它没有绑定 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

如果我在Python中设置了一个如下所示的类,正如我所期望的那样,创建的lambda表达式应该绑定到类a。我不明白为什么我在
g
这样的列表中放置lambda时,它没有绑定

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>
A类(对象):
f=λx,y:(x+y)
g=[lambda x,y:(x+y)]
a=a()
#a、 f界
打印a.f
#a、 g[0]未绑定
打印a.g[0]

为什么一个绑定而另一个不绑定?

f
是绑定的,因为根据定义,它是类的一部分
g
不是一种方法<代码>g是一个列表。这个列表的第一个元素碰巧是一个lambda表达式。这与是否在类定义中定义了
g
无关

如果希望
g[0]
也成为绑定方法,请执行以下操作:

class A(object):
  f = lambda x,y: (x + y)
  _ = lambda x,y: (x + y)
  g = [_]

你的意思是
a.f
而不是
a.l
?“用户定义的方法”