在导入模块之前,正在从模块调用函数

14

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

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

这怎么可能?提前致谢!

user2357112支持Monica

确实,导入应该首先进行。

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

但是,由创建的函数lambda无法保留到之后的位置import在此代码的执行中,实际上没有任何函数可以满足挑战的要求。该函数的依赖项直到函数​​的生存期结束后才可用。

切换lambda和import可以解决此问题,而无需其他字符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章