2024-05-14 22:43:44 发布
网友
今天,我惊讶地发现以下代码在Python中似乎是有效的:
def foo(n): foo = n * 10 return foo foo(5)
Python中有什么允许变量名与它所在的函数名匹配?这只是某种范围规则,有助于保持这两件事分开吗?那么Python仅仅认为程序的函数名称空间与程序的变量名称空间是完全独立的吗?你知道吗
(注:我不想在我自己的节目中这样做,因为这有点让人困惑,但正如他们在法国说的那样,这是人生。)
这里有两个单独的作用域:函数的全局命名空间和本地命名空间。你知道吗
foo
def foo(n): ...
foo()
return foo
所以是的,这两个人可以很好的挨着住。你知道吗
这里有两个单独的作用域:函数的全局命名空间和本地命名空间。你知道吗
foo
函数位于全局命名空间中,因为def foo(n): ...
在模块的顶层执行。你知道吗foo
整数是foo()
函数中的局部变量。名称只在foo()
执行时存在。执行return foo
时,函数结束,所有局部变量都被清除。你知道吗所以是的,这两个人可以很好的挨着住。你知道吗
相关问题 更多 >
编程相关推荐