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
上面是来自feedparser的代码片段,为什么函数定义方法(self,evalString,feedparser.parse(xmlfile))中有“self”?
谢谢。
lambda的用途与类方法类似。
self
是类的实例,与任何其他方法中的self
几乎相同。通过将类的实例作为第一个参数传递,可以通过类调用方法。由于一般方法的第一个参数按惯例称为
self
,因此这里保留它。self
只引用名为self
的lambda的第一个参数。名称
self
不是一个保留关键字,它只是pythonistas之上的一个约定,用于命名应用该函数的对象的实例。这里,作者使用名称self
作为lambda的第一个参数,因为这个参数将接收一个对象的实例,lambda将在该对象上应用名为method
的参数中指定的方法。相关问题 更多 >
编程相关推荐