首页 > 解决方案 > 在导入模块之前,正在从模块调用函数

问题描述

我正在查看一个代码高尔夫解决方案,它的代码是(由 TFeld 编写):

lambda s:all(''.join(p)in s for p in permutations({*s}))
from itertools import*

这怎么可能?提前致谢!

标签: pythonpython-import

解决方案


确实,应该先导入。

PPCG 站点的常用标准允许创建满足挑战要求的功能的答案,而无需将其实际保存在任何地方。在lambda创建函数的时候,permutations不可用,但是函数没有执行,所以没有错误发生。如果由 创建的函数lambda要在此代码块的末尾执行,则此时permutations将可用,因此不会发生错误。

但是,由 创建的函数lambdaimport. 在这段代码的执行过程中,实际上没有一个函数可以满足挑战的要求。在函数的生命周期结束之前,函数的依赖项不可用。

切换 lambda 和导入将解决此问题,而不需要额外的字符。


推荐阅读