Python lambda表达式如何绑定到类?
如果我在Python中设置了一个如下所示的类,正如我所期望的那样,创建的lambda表达式应该绑定到类a。我不明白为什么我在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
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
?“用户定义的方法”