&引用;“自我”;python中的lambda表达式

&引用;“自我”;python中的lambda表达式,python,lambda,Python,Lambda,上面是feedparser的代码片段,为什么函数定义方法(self、evalString、feedparser.parse(xmlfile))中有“self” 谢谢。self只是引用lambda名为self的第一个参数 nameself不是一个保留关键字,它只是pythonistas之上的一个约定,用于命名应用函数的对象的实例。在这里,作者使用nameself作为lambda的第一个参数,因为这个参数将接收一个对象的实例,lambda将在该对象上应用名为method的参数中指定的方法,可以通过类

上面是feedparser的代码片段,为什么函数定义方法(self、evalString、feedparser.parse(xmlfile))中有“self”


谢谢。

self
只是引用lambda名为
self
的第一个参数


name
self
不是一个保留关键字,它只是pythonistas之上的一个约定,用于命名应用函数的对象的实例。在这里,作者使用name
self
作为lambda的第一个参数,因为这个参数将接收一个对象的实例,lambda将在该对象上应用名为
method

的参数中指定的方法,可以通过类将类的实例作为第一个参数来调用方法。由于常规方法的第一个参数按惯例称为
self
,因此它保留在这里

def buildTestCase(xmlfile, description, method, evalString):
  func = lambda self, xmlfile=xmlfile, method=method, evalString=evalString: \
       method(self, evalString, feedparser.parse(xmlfile))  
  func.__doc__ = description
  return func

lambda的用途类似于类方法。
self
是类的实例,与任何其他方法中的
self
几乎相同。

谢谢Ignacio,但我不是指类成员函数。那又怎样呢。这就是它的名字。
>>> class C(object):
...   def foo(self):
...     print 42
... 
>>> c = C()
>>> C.foo(c)
42