今天测试了一些Python代码,我尝试了以下代码:def x():Python不会引发NameError: global name 'N' is not defined,这让我想知道一件事,那就是:
当del语句使用函数的封闭作用域删除嵌套函数(如y函数)中使用的空闲变量时,如果这个自由变量(在我们的例子中是N )是通过封闭作用域中的del语句删除的,那么del实际上所做的是删除
(我敢肯定这个问题已经在这个网站上得到了回答,但是搜索被C语言中调用free()变量的概念淹没了。)我遇到了"eta缩减“这个术语,它的定义类似于f x = M x ==> M,如果x”在M中不是自由的“。我的意思是,我想我理解了它试图表达的要点,它看起来就像你将一个函数转换成无点风格时所做的,但我不知道关于x不是自由的限定符是什么意思。