源码中闭包的问题,求大神解救。。,源码大神,我在看源码的时候遇到了这


我在看源码的时候遇到了这个:

loader = self.get_file_loader(value)

然后找到get_file_loader()函数:

def get_file_loader(self, filename):        return lambda x: (os.path.basename(filename), self._opener(filename))

里面的_opener()函数是:

def _opener(self, filename):        return lambda: (            open(filename, 'rb'),            datetime.utcfromtimestamp(os.path.getmtime(filename)),            int(os.path.getsize(filename))        )

貌似这用到了闭包,当执行get_file_loader(value)的时候会返回一个lambda函数,但是lambda里面的参数是什么呢?请问调用这个loader是不是要loader(x)这样,那x是什么呢?
还有一个同样的问题,_opener()返回的也是个lambda()函数,那在get_file_loader()中怎么调用呢

问题有点多。。。 跪求大神解决,谢谢了~

编橙之家文章,

评论关闭