python lambda表达式中的"self"

Fre*_* HE 5 python lambda

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
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Adr*_*son 7

self简单地引用名为lambda的第一个参数self.

该名称self不是保留关键字,它仅仅是pythonistas上面的约定,用于命名该函数适用的对象的实例.在这里,作者使用该名称self作为lambda的第一个参数,因为该参数将接收一个对象的实例,lambda将在该对象上应用名为的参数中指定的方法method.